カスタムフィールドの活用。
どういうアレか
送信完了ページとか、隠しページとか、検索結果に出てほしくないページがある。
個別に検索避けできたら便利だよねという話。
やっていく
自動で振り分けられるのは今回の筋とは異なるので割愛、カスタムフィールドで検索避けの<meta>を挿入するギミックを作っていく。
弄るのはカスタムフィールドとheader.php。
カスタムフィールド
カスタムフィールドで真偽のやつを作る。
SCFとかACFとかで簡単に作れていいですね。
カスタムフィールド名は「noindex」として、trueなら検索避けを仕込むこととする。
設定できる対象を全ページにするとか、投稿だけ、カスタム投稿だけ、みたいなのがあると思うのでそこは任意で。
header.php
SCFだとこんな感じ。
<?php if(scf::get('noindex') == true): ?>
<meta name="robots" content="noindex,nofollow,noarchive" />
<?php endif; ?>
ページの条件を入れたいならこんな感じとか。
<?php
if(is_page() || is_singular()):
if(scf::get('noindex') == true):
?>
<meta name="robots" content="noindex,nofollow,noarchive" />
<?php endif; endif; ?>
全ページを対象にしない場合はこういう感じにしたほうがいいですね。そうでないと存在しないカスタムフィールドを拾いに行く無駄な動作をさせることになる。
テーマを更新して、対象の記事の編集画面でカスタムフィールドを入力して、ページを閲覧してソースを開いて動作確認。プレビューでも発火するので公開してなくても大丈夫。
一応注意
これで操作できるのはWP-admin内で編集できるページのみ。
だから、archive.phpとかcategory.phpとかsearch.phpとかを弄ることはできない。
それと、単純にページに仕込むだけだからsitemapには反映されない。sitemapには入ってるのに見に行ったら弾かれました、ということでサチコが怒る可能性はある。
あと、検索結果の表示・非表示や表示内容の反映は修正は即時じゃない。
検索避けのタグは検索エンジンのロボット次第なんで、公開済みに後追いで付けた場合は再度クロールされて反映されるまで待つ必要がある。
コメント