【Googleテスト】リッチリザルトに対応していますか? のエラーを力技でバッチリにする話(出力コードを変換)


あなたのページはリッチリザルトに対応していますか?

①エラーに気づく。

ドタバタだった最近、自分のサイトをGoogle Search Consoleに登録したまま放ったらかしていました。

エラーが届いています。どれ、見てみましょう。

なんぞこれ。

②リッチリザルトテストもしてみる。

別角度から、Google提供の「リッチリザルトテスト」もしておきましょう。
https://search.google.com/test/rich-results


なんぞこれ。

③場所と原因を特定する。

どうやら、WordPressのwp_footer()がnullを吐いている模様。

くっそ、そりゃ解析不能な構造化データだよ! どこでそんな自動出力しちゃってるんだよ! どのプラグインだよ! と、コードを追いかけましたが、コア部分をいじるの怖いし、アップデートで無駄になりそう……

wp_head()から不要なコードを削除する方法は色々出ていますが

wp_headの不要なコードを削除する方法をまとめました
https://satoyan419.com/post/how-to-edit-wp_head/

[WP]wp_head()の出力内容から不要な情報を削除するカスタマイズ
https://www.webantena.net/wordpress/wp-head-remove-action/

WordPressの関数「wp_head」の出力内容をアクションフックで制御する
https://helog.jp/wordpress/wp_head/

そもそも「<script type="application/ld+json">」👈特定すら出来ないし。

④力技を思いつく。

あ、そうだ、出力されるHTMLをキャッチして上書きしてしまえばいいじゃない。

④-1.「バッファリング→変換」関数を追加する。

functions.php内に、以下の関数を追加します。

function wp_footer_update() {
    // バッファリング開始
    ob_start();

    // wp_footer出力
    wp_footer();

    // バッファの内容を取得
    $footer = ob_get_contents();

    // バッファリング終了
    ob_end_clean();

    // 変換(不要なコードを削除したり置換したり)
    $footer = str_replace(変更前のコード, 変更後のコード, $footer);

    // 変換後の内容を出力
    echo $footer;
}

④-2.出力関数を変更する。

footer.php内の「wp_footer()」の記述を「wp_footer_update()」に更新します。

⑤リッチリザルトになる。


バッチリ~👌

めちゃくちゃ力技ですが、勝手に自動出力されるコードで行き詰まっている方には、とても有用な力技ではないでしょうか。ぜひ流用してくださいね✋

こちらからは以上です!

0 コメント