Algoliaにインポートする記事のURLを任意の値に書き換える

Algoliaという便利な検索エンジンサービスがあるのですが、素晴らしいことにWordPressとの連携プラグインなんてものまで出ています。 この連携プラグインをWordPressに入れておけば、WordPressの記事 […]

広告ここから
広告ここまで

目次

    Algoliaという便利な検索エンジンサービスがあるのですが、素晴らしいことにWordPressとの連携プラグインなんてものまで出ています。

    %e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-15-52-26

    この連携プラグインをWordPressに入れておけば、WordPressの記事をAlgoliaの検索エンジンで検索できるようになります。

    ただ、たまにWordPress管理画面のドメインと公開されているwebサイトのURLが違う場合があるのですが、その場合のAlgoliaの検索結果は管理画面のドメインの方になってしまいます。

    ということでAlgoliaにインデックスさせる前にURLを書き換えてしまいましょう。

    add_filter( 'algolia_post_shared_attributes', 'replace_algolia_link', 10, 1 );
    function replace_algolia_link(  $shared_attributes ){
    	$replaced_domain = 'REPLACED_DOMAIN';
    	$url = $shared_attributes['permalink'];
    	$parsed_url = parse_url( $url );
    	$replace_target = $parsed_url['host'];
    	if ( isset( $parsed_url['port'] ) && $parsed_url['port'] ) {
    		$replace_target .= ":{$parsed_url['port']}";
    	}
    	$shared_attributes['permalink'] = preg_replace( "#{$replace_target}#i", $replaced_domain, $url );
    	return $shared_attributes;
    }
    

    3行目の$replaced_domain = 'REPLACED_DOMAIN';の部分に変更したいドメインを設定してください。(例:example.com

    このコードをmu-pluginsあたりに仕込んでおくことで、以下の画像のようにパーマリンクを任意の値に書き換えてAlgoliaへインデックスさせることができます。

    hosted_cloud_search_as_a_service___algolia

    このあたり管理画面からカスタマイズできたりしたら便利かなとは思いますが、個別に対応できる範囲内であればこのコードでとりあえず事足りるかと思います。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark