WordPressテーマSANGOの質問

検索結果ページのmeta robotsをindexにしたいが、robotsが二つ出力される

アバター
SAKURA-PC

お忙しいところ恐れ入りますが質問をさせてください。

目的:
・検索結果ページのmeta robotsをindex,followに
・添付画像のページのmeta robotsをindex,followに
・タグページのmeta robotsはnoindex,followに

「タグ一覧ページのmeta robotsをindexにしたい」の項目を拝見しまして
以下のように追加しました

function my_sng_meta_robots()
{
global $post;
$rogots_tags = ”;
if (is_attachment()) { //メディアページはインデックスする
//$rogots_tags = ‘index,follow’;
} elseif (is_page() || is_single()) { //記事・固定ページの場合
$robots_r = get_post_meta($post->ID, “noindex_options”, true);
if (is_array($robots_r)) {
$rogots_tags = (in_array(‘noindex’, $robots_r) && !in_array(‘nofollow’, $robots_r)) ? ‘noindex,follow’ : implode(“,”, $robots_r);}
} elseif (is_paged() || is_date()) { //トップやアーカイブの2ページ目以降はindexせず、followだけ。
$rogots_tags = ‘index,follow’;
} elseif (is_search()) { //検索結果はインデックスする
$rogots_tags = ‘index,follow’;
} elseif (is_category()) { //カテゴリーページ
//初期設定ではインデックス
//$rogots_tags = ‘noindex,follow’;
}
elseif(is_tag()) {
// 下記のコメントアウトを外すと再度noindexに
$rogots_tags = ‘noindex,follow’;
}
if ($rogots_tags) {
echo ”;
}
} //END my_sng_meta_robots()

function remove_sng_parent_meta_robots(){
remove_action(‘wp_head’, ‘sng_meta_robots’,10);
}
add_action(‘after_setup_theme’,’remove_sng_parent_meta_robots’);
add_action(‘wp_head’, ‘my_sng_meta_robots’,9999);

結果、以下のようになりました

検索結果:
head内上部に
head内下部に

タグのページ:
head内上部
head内下部

通常記事:
head内上部
head内下部に記載はなし

メディアページ:
head内上部
head内下部に記載はなし

検索結果とタグのページは「meta name=’robots’」が二重に記載されているので
既存の設定を削除する方法はございますでしょうか。

SANGO
質問板アーカイブ
コメントへの回答
サルワカくん
サルワカくん
2021/04/09

いつもお世話になっております。

SANGOでは子テーマからSANGOのに記述されている関数を上書きできる仕組みを導入しています。
ですので、my_sng_meta_robotsと定義されていますが、そうではなく、子テーマ側で、sng_meta_robots関数を定義していただけませんでしょうか?
そうすることで親テーマの関数を実行する代わりに子テーマの関数が実行される形になります。

よろしくお願いします。

アバター
SAKURA-PC
2021/04/11

お世話になっております。
さっそくご回答いただきまして誠にありがとうございます。

ご回答いただきましたように修正いたしましたが、結果は変わらず、上部と下部に二重でrobotsが出力されていました。(キャッシュ確認済)

そこで、子テーマのrobots記述を全て削除したところ、
なにも記述しない状態でも
以下のように二重に出力されていました。

<子テーマのrobots記述を削除した状態>

タグのページ
head上部:<meta name='robots' content='max-image-preview:large' />
head下部:<meta name="robots" content="noindex,follow" />

検索結果のページ
head上部:<meta name='robots' content='noindex, follow, max-image-preview:large' />
head下部:<meta name="robots" content="noindex,nofollow" />

メディアのページ
head上部:<meta name='robots' content='max-image-preview:large' />
head下部:<meta name="robots" content="noindex,nofollow" />

<子テーマにrobotsの記述した場合>

検索結果のページ
head上部:<meta name='robots' content='noindex, follow, max-image-preview:large' />
head下部:<meta name="robots" content="index,follow" />

メディアのページ
head上部:<meta name='robots' content='max-image-preview:large' />
head下部:記述なし

タグのページ
head上部:<meta name='robots' content='max-image-preview:large' />
head下部:<meta name="robots" content="noindex,follow" />

<PORIPUに記述した内容>

// sango公式案内:meta robotsをindexにしたい
function sng_meta_robots()
{
global $post;
$rogots_tags = '';
if (is_attachment()) { //メディアページはインデックスする
//$rogots_tags = 'index,follow';
} elseif (is_page() || is_single()) { //記事・固定ページの場合
$robots_r = get_post_meta($post->ID, "noindex_options", true);
if (is_array($robots_r)) {
$rogots_tags = (in_array('noindex', $robots_r) && !in_array('nofollow', $robots_r)) ? 'noindex,follow' : implode(",", $robots_r);}
} elseif (is_paged() || is_date()) { //トップやアーカイブの2ページ目以降はindexせず、followだけ。
$rogots_tags = 'index,follow';
} elseif (is_search()) { //検索結果はインデックスする
$rogots_tags = 'index,follow';
} elseif (is_category()) { //カテゴリーページ
//初期設定ではインデックス
//$rogots_tags = 'noindex,follow';
}
elseif(is_tag()) {
// 下記のコメントアウトを外すと再度noindexに
$rogots_tags = 'noindex,follow';
}
if ($rogots_tags) {
echo '<meta name="robots" content="' . $rogots_tags . '" />';
}
} //END sng_meta_robots()

function remove_sng_parent_meta_robots(){
remove_action('wp_head', 'sng_meta_robots',10);
}
add_action('after_setup_theme','remove_sng_parent_meta_robots');
add_action('wp_head', 'sng_meta_robots',9999);

<SANGOのバージョン>2.0.3
<PORIPUのバージョン>1.03
(※1回目の質問にもしからしたらPOROPUの注文番号を入れてしまったかもしれません)

SANGOのデモサイトはrobotsが重複していませんし、通常なら重複しませんよね・・。
お忙しいところ質問を重ねてしまい、大変恐れ入ります。
丁寧なサポートをいただき心から感謝申し上げます。

サルワカくん
サルワカくん
2021/04/12

お世話になっております。

一度、親テーマであるSANGOに切り替えて同様の問題が発生するかどうかご確認いただくことは可能でしょうか?
よろしくお願いします。

アバター
SAKURA-PC
2021/04/15

お世話になっております。
ご回答いただきまして誠にありがとうございます。

親テーマのsangoに切り替えてみましたが、
やはり結果は変わらず、
上部と下部に二重でrobotsが出力されていました。(キャッシュ確認済)

<親テーマのsangoに切り替えた場合>

タグのページ
head上部:
head下部:

検索結果のページ
head上部:
head下部:

念の為sangoのfunctions.phpも確認しましたが追記や変更はしていませんでした・・
header.phpも修正していないようでした。
あとはテーマアップデートを試すしかないでしょうか?
お手数かけまして大変申し訳ございません。

サルワカくん
サルワカくん
2021/04/15

いつもお世話になっております。
こちらの環境では再現しませんのでプラグインなどが影響している可能性もあるかもしれないですね。
なにかSEOに関わるプラグインをお使いでしょうか?

アバター
SAKURA-PC
2021/04/16

ご返信いただきまして誠にありがとうございます。
真摯にご対応くださり心より感謝申し上げます。

SEOのプラグインは使っていません。

キャッシュや遅延読み込みですと以下のプラグインが入っています。
Image optimization service by Optimole
WP-Optimize

投稿編集画面の「メタロボット設定」にて
「noindex」「nofollow」両方にチェックした記事も、

head上部:<meta name='robots' content='max-image-preview:large' />
head下部:<meta name="robots" content="noindex,follow" />

と出力されていました。

サルワカくん
サルワカくん
2021/04/17

いつもお世話になっております。

以前以下の様なソースコードを記述されているということをコメントされていたと思うのですが、以下のアクションを消してみていただけますでしょうか?

add_action(‘after_setup_theme’,’remove_sng_parent_meta_robots’);
add_action(‘wp_head’, ‘my_sng_meta_robots’,9999)

直接子テーマで、sng_parent_meta_robotsとsng_meta_robots関数を変数していただくのが良さそうです。
よろしくお願いします。

アバター
SAKURA-PC
2021/05/01

ご返信いただきまして誠にありがとうございました。
何度もお伺いするのが申し訳ないと思い
自分で試行錯誤しておりまして、
ご返信へのお礼が遅くなり申し訳ございません。

該当の記述を削除しましたが、やはり二重で出力されました。
該当の記述は子テーマporipuのみに記載しましたが、
sangoのみにした状態でも同じです。

もう少し自分で試行錯誤してみます。
またご報告させていただきます。