Wistia動画、ディスコース埋め込み投稿に画像を表示

こんにちは。

WordPressの投稿をDiscourseに統合しました。投稿の1つにWistiaビデオを追加しましたが、WP投稿では正常に動作するものの、Discourseでは画像のみが表示され、ビデオは表示されず、代わりに画像が読み込まれています。

どなたか、この件についてご案内いただけますでしょうか?

「いいね!」 1

お問い合わせいただきありがとうございます。この問題について調べているうちに、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 プラグインのコードに追加できるかどうかを確認します。

「いいね!」 3

@cyriac15さん、この問題の例をWordPressとDiscourseで共有していただけますか?

こんにちは、@simon さん。返信ありがとうございます。

はい、WP Discourse プラグインを使用して WordPress から Discourse に投稿を公開しています。ただし、WP エディターでショートコードを使用しているため、「「完全な投稿コンテンツを使用」オプション」は有効にしていません。

現在、WP クラシックエディターを使用しています。
Wistia の埋め込みコードを WP エディターに追加して動画を挿入しています。

お教えいただいた解決策を試しましたが、何も変更されませんでした。

「いいね!」 1

こんにちは、@angus さん。

WP Discourse プラグインを使用して WordPress から投稿を公開しています。
埋め込み Wistia コードが Discourse フォーラムに表示されません。こちらの リンク を参照してください。

スクリーンショットでマークされた画像は埋め込みコードですが、画像として表示されています。

wp エディターで 埋め込みリンク を使用しています。

これは解決がより難しい問題です。「全投稿を表示」ボタンをクリックした後にDiscourseで投稿が表示される際、現在すべてのiframeがDiscourseによって削除されています。これは、どのソースからの動画もトピックに表示されなくなることを意味します。これが機能するようになると素晴らしいでしょう。何度か要望が出されていることは承知しています。

Discourse の埋め込み投稿にある「投稿全体を表示」ボタンは、ユーザーがクリックしたときに埋め込まれたウェブページを「再クロール」することで機能するため、このようになっています。そのボタンをクリックしたときに表示される HTML は、投稿が公開されたときに WP Discourse プラグインによって送信されるのではなく、関連ページの新しいクロールです。

ウェブクロールは、HTML 構造の多様性 (たとえば、HTML で画像を表示する方法は数多くあります) のため、常に一長一短です。このため、改善の可能性がある機能として検討されています。詳細は以下をご覧ください。

そのため、現時点では簡単な解決策はありません。クローラーが使用する HTML セレクターをブロックおよび許可することはできますが、これは意図したとおりに機能させるのが難しいことです。詳細は以下をご覧ください。

これに対処する簡単な方法は、「投稿全体を表示」ボタンを非表示にするか、カスタムテーマコンポーネントを使用して元の WordPress 投稿にリンクするようにオーバーライドすることです。あなたのサイトのように、画像を含む比較的複雑な投稿 HTML 構造を持つサイトでは、これらの後者のオプションをお勧めします。

「いいね!」 1