WordPressで特定のページだけnoindexしたい問題、header.phpと投稿ページ関連のphpを子テーマに持ってくるという力技で解決させました。やはり持つべきものは力!力こそパワー!
今までのあらすじ
投稿ページ(ブログページ)は検索で引っかかってもいいけど、ほかのページは検索避けをしたい…。カスタムフィールドでフラグ立てたページにnoindexをつけるみたいな設定をしたけど、EASELだと作品投稿ページにカスタムフィールドの項目がないので設定できないので困った。あと作品のカテゴリページとかにもnoindexつけたいけどどうしたらいいんだー!と1週間くらい色々悩んでたけど、ページごとに違うheader.phpを読み込むことができると知り、これでいいじゃん!!になりました。
用意したもの
Show Current Template
ページ内でなんのphp使ってるかわかるプラグイン。これがないとなにもできない。
手順
- 親テーマから必要なphp(header.php、index.php、archive.php、single.php)をローカルにコピー
- header.phpをコピーして、header-blog.phpを作成
- header.phpの方に、noindexタグを記述
- index.php、archive.php、single.phpのget_header()をget_header(“blog”)に書き換える
- 子テーマのフォルダ内にheader.php、header-blog.php、index.php、archive.php、single.phpをアップロード
- 各ページのheader.phpパスが子テーマになってればOK(投稿ページ周りはテンプレート相対パスも子テーマになる)
phpよくわかんないからこういう解決方法にしちゃったけど、まあいっか…個人サイトだし…てなってます。いいんだよ!家主は俺だーーーーーッ!!!
投稿ページは検索引っかかるようにしてるんなら、検索から投稿記事にたどり着いた人がリンク辿っていけるんだから一部ページだけnoindexつけるのって意味なくない?ってのは思います。でもnoindexておまじないみたいなもんでしょ…(暴言)結局ワールドワイドウェブに放流した時点でどっかの誰かの目についてしまうんですよ。しょうがないね。