page.phpで構造化データ(JSON-LD)を出力できず困っています
こんにちは。SANGOを利用しています。
現在、固定ページ(スラッグ:talk
)に構造化データ(DiscussionForumPosting)を出力したいのですが、うまくいかず困っています。
子テーマに page.php
を作成し、以下のようなコードを the_post();
の直後に記述しています。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "DiscussionForumPosting",
"headline": "テストタイトル",
"articleBody": "テスト本文",
"author": {
"@type": "Person",
"name": "匿名ユーザー"
},
"datePublished": "2025-04-12T00:00:00+09:00"
}
</script>
ですが、上記のコードがページのソースにまったく出力されません。
試したこと:
・<!-- コメント --> などは正しく出力される
・<script> タグ自体も console.log() で確認済み
・ただし、type="application/ld+json" の <script> だけが出力されないようです
このような動作が SANGOテーマの仕様によるものでしょうか?
構造化データをページごとに自由に追加する方法があれば教えていただけると助かります。
よろしくお願いいたします。

ちなみに、なぜこれが必要になるのかというと、 Sangoを使っているサイトに対して、Google Search Console より 「100 件以上のフォーラム ページにディスカッション フォーラムの構造化データがありません」 と指摘されており、構造化データの実装が必要だからです

お世話になっております。ソースに反映されない原因は、SANGOとは直接関係ないとは思いますが、 もしかするとキャッシュなどが原因で、反映されていない可能性はあるかもしれないです。 サーバーのキャッシュなどを削除してみてください。
また何らかの原因でそのページがフォーラムページと判定されているので その原因も探ってみるとよいかもしれません。
よろしくお願いします。

ご回答ありがとうございます。
「そのページがフォーラムページと判定されていること」自体は問題視しておらず、 GSCからの「DiscussionForumPosting構造化データが不足している」との指摘に対応するために、 page.php に <script type="application/ld+json"> を記述しています。
ただし、console.log() は問題なく表示される一方で、 type="application/ld+json" の <script> タグだけがソースに出力されず、ブロックされているように見えます。
キャッシュ系も考慮し、サーバー側キャッシュやブラウザキャッシュ、WordPressのキャッシュも全て削除済みですが、 状況は変わりませんでした。
SANGO側で、JSON-LDの出力に何らかの制限や影響を及ぼす仕様・フックなどがある可能性はあるでしょうか? お心当たりがあればご教示いただけますと助かります。
よろしくお願いいたします。

https://sangoland.app/blocks/jsonld SANGOで構造化データをページごとで作成するならこのブロックパターンをベースに作るとできそうです 状況変わらずとのことですがGSCの管理画面で確認されているのでしょうか? https://search.google.com/test/rich-results?hl=ja 現状のコードで確認してみてもいいかもしれません 実際のサイトURLがあればもう少しちゃんとした意見は出せるかと思います

ユーザー登録が必要です