WordPressでシングルページを表示させたくない。
この記事は1年以上前(2018年12月19日)に書かれたもので、内容が古い可能性がありますのでご注意ください。
WordPressでシングルページを生成したくないって場面たまにありませんか。
アーカイブページ(一覧)だけで完結しちゃっているコンテンツなんかそうですよね。
例えばニュースというコンテンツがあって一覧にタイトルだけ出力して詳細はいらないよなんていう場合です。
上述のケースであれば一覧でパーマリンクを貼る関数をつかわなければいいだけなので見た目的にはなんら問題ありません。
しかし、シングルページは生成はされてしまっているのでGoogle側でインデックスされてしまい検索結果にでてきちゃうことになるんです。これが嫌だなんていうお客様がけっこういます。
ベストなやり方
WordPressのシステム上詳細ページを生成しないというやり方は恐らく無理なんじゃないかなと思います。
であれば不必要なページでも体裁を整えたシングルページを用意してあげるのがベストだと僕は思います。
勿論タイトルだけでもいいですし。
自分がお客様から相談された時にはこのように返答します。
それでもどうしても表示させたくない。
上記のことを踏まえてもどうしても表示させたくないよっていう方もいます。
その場合はリダイレクトをつかってしまいましょう。
下記のようなケースの場合
ポストタイプ:hoge
対象ファイル:single-hoge.php
<?php if (have_posts()):while(have_posts()):the_post(); ??>
<?php wp_safe_redirect( home_url() ); exit;??>
<?php endwhile; ??>
<?php else: endif;??>
上記のコードを対象のPHPファイルに書くだけです。
※home_url関数の中身は自由に変更してください。
厳密にいえば表示させないことはできないので表示させない風にリダイレクトしてるってだけですが。
以上。