WordPressのカスタム投稿で作った「個別ページ」と「一覧ページ」をnoindexにしたい。
すべてのカスタム投稿じゃなくて、特定のスラッグのカスタム投稿にだけnoindexを設定したい。
functions.phpにどんな記述をすればいいのか教えて欲しい。
こんなことを考えている方へ。
この記事のポイントは以下です。
■■WEB制作を学ぼう■■
【WordPress】カスタム投稿の一覧と個別ページをnoindexにする方法
WordPressのカスタム投稿で作った「個別ページ」と「一覧ページ」をnoindexにする方法を解説します。どちらの場合も「functions.php」にnoindexの記述を追記します。
コピペできるサンプルコードも紹介します。
①カスタム投稿の一覧ページ(アーカイブページ)をnoindexにする方法
特定のカスタム投稿の一覧ページ(アーカイブページ)をnoindexにするには、functions.phpに以下を記述をすればOKです。
// -----------------------------------------------------
// カスタム投稿タイプが movie の一覧ページはnoindex
// -----------------------------------------------------
function archive_noindex(){
if ( is_post_type_archive( 'movie' )) {
echo '<meta name="robots" content="noindex , nofollow" />';
}
}
add_action('wp_head', 'archive_noindex');
上記の書き方だと、
になります。
「movie」の部分にスラッグ名を入れて指定します。たとえば「shop」というスラッグ名を指定したいときは「 is_post_type_archive( ‘shop’ )」になります。
また、スラッグを指定せず、すべてのカスタム投稿タイプの一覧ページをnoindexにしたいときは以下のように書きます。「is_post_type_archive()」のカッコ()の中を空欄にすればOKです。
// -----------------------------------------------------
// すべてのカスタム投稿タイプの一覧ページをnoindexにする
// -----------------------------------------------------
function archive_noindex(){
if ( is_post_type_archive()) {
echo '<meta name="robots" content="noindex , nofollow" />';
}
}
add_action('wp_head', 'archive_noindex');
「is_post_type_archive()」の詳細は、公式の関数リファレンスを参照ください。
②カスタム投稿の個別ページ(投稿ページ)をnoindexにする方法
特定のカスタム投稿の個別ページ(投稿ページ)をnoindexにするには、functions.phpに以下を記述をすればOKです。
// -----------------------------------------------------
// カスタム投稿タイプが movie の個別投稿ページはnoindex
// -----------------------------------------------------
function single_noindex(){
if (is_singular('movie')){
echo '<meta name="robots" content="noindex , nofollow" />';
}
}
add_action('wp_head', 'single_noindex');
上記の書き方だと、
になります。
「movie」の部分にスラッグ名を入れて指定します。たとえば「shop」というスラッグ名を指定したいときは「is_singular(‘shop’)」になります。
「is_singular()」の詳細は、公式の関数リファレンスを参照ください。
参考:すべての一覧ページ(アーカイブページ)をnoindexにする方法
カスタム投稿であっても通常の投稿であっても、とにかくすべての一覧ページ(アーカイブページ)をnoindexに設定したい場合の書き方は以下です。
// -----------------------------------------------------
// すべての一覧ページ(アーカイブページ)をnoindex
// -----------------------------------------------------
function all_archive_noindex(){
if (is_archive()) {
echo '<meta name="robots" content="noindex , nofollow" />';
}
}
add_action('wp_head', 'all_archive_noindex');
「is_archive()」の詳細は、公式の関数リファレンスを参照ください。
まとめ
この記事のポイントをまとめます。
WordPressの特定のカスタム投稿の「個別ページ」と「一覧ページ」をnoindexにする次の通りです。以下で記載するそれぞれのコードを「functions.php」に貼り付ければOKです。
- 例)カスタム投稿タイプが movie の一覧ページはnoindex
// -----------------------------------------------------
// カスタム投稿タイプが movie の一覧ページはnoindex
// -----------------------------------------------------
function archive_noindex(){
if ( is_post_type_archive( 'movie' )) {
echo '<meta name="robots" content="noindex , nofollow" />';
}
}
add_action('wp_head', 'archive_noindex');
- 例)カスタム投稿タイプが movie の個別ページ(投稿ページ)はnoindex
// -----------------------------------------------------
// カスタム投稿タイプが movie の個別投稿ページはnoindex
// -----------------------------------------------------
function single_noindex(){
if (is_singular('movie')){
echo '<meta name="robots" content="noindex , nofollow" />';
}
}
add_action('wp_head', 'single_noindex');
今回の記事はここまでです。