こんにちは。
WordPressの投稿をDiscourseに統合しました。投稿の1つにWistiaビデオを追加しましたが、WP投稿では正常に動作するものの、Discourseでは画像のみが表示され、ビデオは表示されず、代わりに画像が読み込まれています。
どなたか、この件についてご案内いただけますでしょうか?
こんにちは。
WordPressの投稿をDiscourseに統合しました。投稿の1つにWistiaビデオを追加しましたが、WP投稿では正常に動作するものの、Discourseでは画像のみが表示され、ビデオは表示されず、代わりに画像が読み込まれています。
どなたか、この件についてご案内いただけますでしょうか?
お問い合わせいただきありがとうございます。この問題について調べているうちに、Discourse WordPress プラグインが YouTube および Vimeo の埋め込みを処理する方法に問題があることがわかりました。この問題の修正により、WordPress から公開されたトピックの Wistia 動画の表示問題も解決する可能性があります。
WP Discourse プラグインを使用して WordPress から Discourse に投稿を公開しており、「WP Discourse 公開オプション」タブにある「投稿コンテンツ全体を使用」オプションを有効にしていると仮定します。また、Classic エディターではなく、WordPress のブロックエディターを使用していると仮定します。もしそれが正しくない場合はお知らせください。
もし WordPress の投稿を Discourse にこのように公開しているのであれば、WordPress の投稿に Wistia 動画をどのように追加していますか?「共有」リンクを使用していますか、それとも動画の埋め込みコードを使用して動画を追加していますか?「共有」リンクが使用されている場合は機能する可能性がありますが、埋め込みコードが使用されている場合は機能しないと考えています。
参考までに、YouTube および Vimeo 動画の問題は次の場所にあります。
このコードがプラグインに追加されたとき、WordPress の動画ブロックは動画プロバイダーに基づいて名前が付けられていました。たとえば core-embed/youtube です。WordPress は現在、動画ブロックに core/embed という名前を使用し、providerNameSlug 属性でプロバイダーを指定しているようです。たとえば次のようになります。
[blockName] => core/embed
[attrs] => Array
(
[url] => https://scossar3.wistia.com/medias/qtp20hbz4i
[type] => video
[providerNameSlug] => wistia-inc
)
https://github.com/discourse/wp-discourse/blob/main/lib/discourse-publish.php#L284C17-L284C35 の次の変更により、YouTube および Vimeo 動画の問題が解決され、Wistia 動画も Discourse に公開できるようになります。
( 'core-embed/youtube' === $block['blockName'] || 'core-embed/vimeo' === $block['blockName'] || 'core/embed' === $block['blockName'] )
変更はローカル開発サイトでのみ行いました。さらに詳しく調べて、この修正を WP Discourse プラグインのコードに追加できるかどうかを確認します。
@cyriac15さん、この問題の例をWordPressとDiscourseで共有していただけますか?
こんにちは、@simon さん。返信ありがとうございます。
はい、WP Discourse プラグインを使用して WordPress から Discourse に投稿を公開しています。ただし、WP エディターでショートコードを使用しているため、「「完全な投稿コンテンツを使用」オプション」は有効にしていません。
現在、WP クラシックエディターを使用しています。
Wistia の埋め込みコードを WP エディターに追加して動画を挿入しています。
お教えいただいた解決策を試しましたが、何も変更されませんでした。
こんにちは、@angus さん。
WP Discourse プラグインを使用して WordPress から投稿を公開しています。
埋め込み Wistia コードが Discourse フォーラムに表示されません。こちらの リンク を参照してください。
スクリーンショットでマークされた画像は埋め込みコードですが、画像として表示されています。
wp エディターで 埋め込みリンク を使用しています。
これは解決がより難しい問題です。「全投稿を表示」ボタンをクリックした後にDiscourseで投稿が表示される際、現在すべてのiframeがDiscourseによって削除されています。これは、どのソースからの動画もトピックに表示されなくなることを意味します。これが機能するようになると素晴らしいでしょう。何度か要望が出されていることは承知しています。
Discourse の埋め込み投稿にある「投稿全体を表示」ボタンは、ユーザーがクリックしたときに埋め込まれたウェブページを「再クロール」することで機能するため、このようになっています。そのボタンをクリックしたときに表示される HTML は、投稿が公開されたときに WP Discourse プラグインによって送信されるのではなく、関連ページの新しいクロールです。
ウェブクロールは、HTML 構造の多様性 (たとえば、HTML で画像を表示する方法は数多くあります) のため、常に一長一短です。このため、改善の可能性がある機能として検討されています。詳細は以下をご覧ください。
そのため、現時点では簡単な解決策はありません。クローラーが使用する HTML セレクターをブロックおよび許可することはできますが、これは意図したとおりに機能させるのが難しいことです。詳細は以下をご覧ください。
これに対処する簡単な方法は、「投稿全体を表示」ボタンを非表示にするか、カスタムテーマコンポーネントを使用して元の WordPress 投稿にリンクするようにオーバーライドすることです。あなたのサイトのように、画像を含む比較的複雑な投稿 HTML 構造を持つサイトでは、これらの後者のオプションをお勧めします。