PluginWordPress

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

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

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

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

Related Category posts