複数のカテゴリを指定するには、何を修正すればよいでしょうか?
「他のサイト」がローカル環境の http://localhost:8000 で動作し、Discourse サイトが https サブドメインの非ローカル環境にある場合でも、これは機能するでしょうか?それとも「他のサイト」も「実際の」ドメイン上に存在する必要がありますか?
スクリプトファイルは正常に取得されているようですが、JS コンソールにはエラーが表示されません。「他のサイト」は Gatsby/React サイトです。ページがブラウザでレンダリングされた後、useEffect を通じて <d-topics-list> 要素を追加していますが、ライブ DOM 上では正しく表示されているように見えます(スクリーンショット参照)…

https から http への変更は通常問題を引き起こしますが、ブラウザのコンソール(F12)を開いて確認できます。
なるほど、私の問題の原因は、React がクライアント側の DOM を操作し、embed-topics.js スクリプトが iframe を挿入した直後に、サーバー側でレンダリングされた DOM(生の <d-topics-list> 要素を含むもの)に一致するようにリセットしていることにあるようです。
このエラーについてご存知の方はいらっしゃいますか?
最新の Discourse ビルド
最新の Chrome ブラウザ
‘https://vapingcommunity.co.uk/’ のフレーム化が拒否されました。これは、祖先が以下のコンテンツセキュリティポリシーディレクティブに違反しているためです: “frame-ancestors ‘self’”。
おそらくこの変更に関連しています:(cc @falco)
メインサイトが「管理」>「カスタマイズ」>「埋め込み」に登録されていますか?
ビンゴ!その変更には気づきませんでした。また完璧に動作しています。ありがとうございます ![]()
「Refused to frame」エラーが発生した方はいらっしゃいますか?
トピックの埋め込みを有効にしたところ、以下のエラーが発生しました。
Refused to frame 'https://myforumurl.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".
サイト全体を埋め込もうとしていますか?それはうまくいきません。
OPは、他のサイトにトピックのリストを埋め込む方法を説明していますが、あなたが説明した理由により、Discourseをiframeで実行することはできません。
最新のトピックのみです。設定で埋め込みトピックを有効にするための指示に従い、スクリプトをホストサイトのヘッダーと本文にコピーしました。テスト中の開発サイトにSSLがないことが原因かどうかはわかりません。
これは、Discourse側ではなく、サイトのセキュリティ設定によるものです。
動作しました。指示をよく読んでいませんでした ![]()
これはうまく機能していますが、唯一の問題は、Google が iframe URL 自体をインデックスしていることです。
たとえば、Discourse のトピックをこのページに埋め込んでいます。
Google は上記のページを正常にインデックスしているようですが、以下の URL もインデックスしています。これを修正したいと思います。
上記のページに meta noindex を追加する方法はありますか?または、さらに良いことに、上記のページにこの新しい Google タグを追加することはできますか?
興味深いですね、@naderさん、ヒントをありがとうございます。この新しいタグをデフォルトで<iframe>に追加すべきでしょうか、@falcoさん、それとも設定にするべきでしょうか?
これで完了するはずです
すべてのクローラーに ' noindex, indexifembedded ' を提供していることを指摘しておきます。これは、新しい indexifembedded をサポートしている Google のみ対象であるべきです Google Developers です。
これは x-robots-tag: googlebot:noindex, indexifembedded に変更すべきです。
あるいは、noindex が他の検索エンジンに予期せぬ影響を与える可能性があるため、完全に削除すべきです。
追加の単語が他のクローラーに特に害を及ぼすとは思いません。その証拠はありますか?例えば、他のクローラーがサイトに indexifembedded を使用しないように伝えていますか?
(ほとんどの場合、このようにコードを書くときは、予期しないHTMLタグは無視する傾向があります。それがHTMLのデフォルトのようなものです。)
それは見当たりませんが、Googleのページには次のように書かれています。
現在、
indexifembeddedタグをサポートしているのは Google だけです。
indexifembedded は無視されることに同意しますが、私の懸念は noindex がそのページ自体のSEOに問題を引き起こすことです。
では、Bingにトピック埋め込みがあるURLをクロールさせてみましょう。Bingは、そのURLと埋め込みURLの両方をクロールします。
/embed/topics?discourse_embed_id=XXXXXX....
上記が noindex の場合、トピック埋め込みをフィーチャーしているページのSEOに悪影響を与えるのではないかと心配しています。
これらはすべて x-robots-tag: googlebot:noindex, indexifembedded を使用することで修正できますが、Discourseが1つの検索エンジンを優先したくない理由も理解できます。標準になることを願っていますが、今のところGoogleだけのように思えます。
埋め込みトピックを target="_parent" ではなく target="_blank" として開くための組み込みの方法がまだないかどうか、お尋ねしたかったのです。
トピックが1つしか表示されないのはなぜか、ただ気になっただけです。誰か知りませんか?
こちらがカテゴリです(多くのトピックがあります):Amazon Specific - eCommerce Sellers Forum
そして埋め込みコードです:
<d-topics-list discourse-url="https://forum.flowster.app" template="complete" top_period="all" category="17" per-page="5"></d-topics-list>
しかし、表示されるのは1つのトピックだけです:
![]()
