cocoonフック調査~is_noindex_pageの使い方と活用例
タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はnoindexにするかの判別結果を変更できるフィルターフック
👉is_noindex_page
です
フックの概要
| フック名 | 発火タイミング |
|---|---|
| is_noindex_page | 全てのページ描画時 |
発火条件
ページ描画時に無条件に1回発火します。
投稿ページ・固定ページ・アーカイブ・トップページなど、ページ種別に関係なく呼び出されます。
使いどころ
・特定のページをインデックスなし(またはインデックスあり)にしたい場合など
デフォルトでは以下のページがnoindexになります。
・アーカイブページ
・カテゴリーページ
・タクソノミページ
・タグページ
・添付ファイルページ
・検索結果ページ
・404ページ
これら以外は全てindexありになります。
上記noindexページをインデックスありにしたい場合はあまり多くないので、実際にはindexありのページをindexなしにする場合に使われることが多いと思います。
引数
$is_noindex:(boolean)true:noindexにする、false:noindexにしない
apply_filters呼び出し元のソースコード
lib/seo.php
return apply_filters('is_noindex_page', $is_noindex);
カスタマイズコード例
一律で全てのページをnoindexにする例です。
条件分岐をすれば「特定の固定ページだけnoindex」「カスタム投稿タイプのみnoindex」といった制御も可能です。
function customize_is_noindex_page ( $is_noindex ) {
$is_noindex = true;
return $is_noindex;
}
add_filter('is_noindex_page', 'customize_is_noindex_page' );
注意点
・無条件で発火するため、条件分岐なしで true を返すと全ページが noindex になる
・SEO への影響が非常に大きいフックなので、テスト環境での確認が必須
・他の SEO プラグインを併用している場合、干渉の影響を考慮する必要がある
まとめ
・is_noindex_page は、ページを noindex にするかどうかを最終的に決定できるフィルターフック
・全ページ描画時に無条件で発火する
・index/noindex を条件分岐で柔軟に制御できる反面、影響範囲が非常に大きい
・使用時は SEO への影響を十分理解した上で実装する必要がある