WordPressでoEmbedの最大幅を設定する方法(簡単な4つの方法)

WordPressを使用すると、YouTube動画やツイートなどのサードパーティ製コンテンツを自動的に埋め込むことで、魅力的なマルチメディアページを簡単に作成できます。

しかし、過去15年以上にわたりWordPressユーザーと密接に協力してきた中で、oEmbedが問題を引き起こす可能性もあるという教訓を得ました。YouTube動画がコンテナからはみ出してテキスト全体を横に押しやったり、コールトゥアクションボタンを画面の下方に強制的に移動させたりする状況を想像してみてください。

そこで、oEmbedの最大幅を設定することが役立ちます。これにより、埋め込みコンテンツがウェブサイトのデザインにシームレスに収まるように制御できます。

この記事では、WordPressでoEmbedの最大幅を設定する方法を紹介し、サイトのレイアウトを完全に制御できるようにします。

WordPressでoEmbedの最大幅を設定する

WordPressでoEmbedの最大幅を修正する理由

WordPressはoEmbedをサポートしており、サードパーティのウェブサイトからのコンテンツを自動的に埋め込むことができます。例えば、YouTube動画、SlideShareプレゼンテーション、ツイート、その他多くの種類のコンテンツを簡単に埋め込むことができます。

このコンテンツはあなたのサーバーでホストされていないため、ウェブサイトの速度を低下させることはありません。特に、oEmbedのようなテクノロジーを常に使用し、WordPressに動画をアップロードしないでください。

注意:FacebookとInstagramは過去にoEmbedをサポートしていましたが、Metaはその後oEmbedのサポートを終了しました。この機能を修復するためのステップバイステップの手順については、WordPressでFacebookとInstagramのoEmbed問題を修正する方法に関するガイドを参照してください。

WordPressは、埋め込みコンテンツの幅を常に調整し、利用可能なスペースに完全に収まるようにします。ただし、埋め込みコンテンツが幅を取りすぎて、ウェブサイトの他のコンテンツ領域と重なってしまう場合があります。

WordPressの埋め込みコンテンツがコンテンツ幅からはみ出す

残念ながら、WordPressの組み込みツールを使用して、サードパーティ製埋め込みコンテンツの最大幅を設定することはできません。

とはいえ、この不足している機能を追加し、WordPressでoEmbedの最大幅を設定する方法を見てみましょう。使用したい方法に直接ジャンプするには、以下のクイックリンクを使用してください。

方法1:埋め込みショートコードの使用(YouTube動画に最適)

ショートコードを使用して最大幅を設定できます。この方法は簡単で、特に少数の投稿の最大幅のみを設定したい場合に便利です。また、この方法はWordPressブログ投稿に動画を埋め込むのにも効果的であることがわかりました。

ただし、埋め込みショートコードとその幅と高さのパラメータは、すべてのoEmbedプロバイダーで機能するわけではありません。たとえば、WordPressのGiphy埋め込みの高さと幅を設定するために使用することはできません。その場合は、以下に記載されている他の方法のいずれかを試すことができます。

URLを投稿エディタに貼り付ける代わりに、ショートコードブロックを作成する必要があります。その後、埋め込みコードに幅と高さのパラメータを追加できます。

例えば、以下をembedタグで囲むだけで済みます:

width="900" height="600"]https://www.youtube.com/watch?v=6LwWumPeues

幅と高さの値を自分のニーズに合わせて変更し、埋め込みたいコンテンツでURLを置き換えるだけです。

ショートコードの埋め込み幅

ページに満足したら、「更新」または「公開」のいずれかをクリックするだけです。

埋め込まれたコンテンツは、利用可能なスペースにきれいに収まるはずです。

oEmbed幅調整済み

方法2:WordPressの組み込み埋め込みブロックを使用する(簡単)

WordPressブロックエディターには、Twitter、YouTubeライブストリームと動画、SoundCloud埋め込みなどのさまざまなoEmbedサービス用の埋め込みブロックが用意されています。

WordPressの埋め込みブロック

これらのブロックの中には、埋め込みの配置を変更し、コンテンツを「ワイド幅」または「フル幅」に設定できるものがあります。

フル幅を選択すると、埋め込みブロックと埋め込まれたコンテンツが画面の全幅を占めます。ワイド幅を選択すると、埋め込みブロックは全幅を占めますが、コンテンツのサイズはそのままです。

結果はWordPressテーマによって異なる場合があります。ただし、これは迅速かつ簡単な方法なので、WordPressウェブサイトで機能するかどうかを確認する価値があります。

ブロックの上にある小さなツールバーの「配置」ボタンをクリックするだけです。次に、「幅広」または「全幅」のいずれかを選択します。

WordPressの埋め込みブロックに配置を追加する

これで埋め込みの最大幅の問題が解決した場合、ページを公開できます。見た目に満足できない場合は、別の方法を試す必要があります。

方法3:カスタムPHPの使用(すべての埋め込みに最大幅を設定)

時には、すべての埋め込みコンテンツの最大幅を設定したい場合があります。これを行う最も簡単な方法は、WordPressウェブサイトにカスタムコードを追加することです。

この方法の問題点は、埋め込みコンテンツにすでに「幅」が定義されていない場合にのみ、最大幅属性が機能することです。埋め込みコードに独自の「幅」属性がすでに含まれている場合、この方法は機能しない可能性があります。

まだサイトのコードを編集したことがない場合は、WordPressにカスタムコードスニペットを簡単に追加する方法に関するガイドをご覧ください。

一部のガイドではテーマファイルを直接編集するように指示していますが、これはあらゆる種類のエラーを引き起こし、ウェブサイトが完全に壊れる可能性さえあります。

そのため、 WPCodeの使用をお勧めします。これにより、テーマファイルを編集することなく、WordPressにコードスニペットを簡単に追加できます。そうすれば、カスタムコード機能をすべて失うことなく、テーマを更新または変更できます。

WPCodeには、事前に設定されたコードスニペットのライブラリも付属しており、これには「oEmbedの最大幅を設定する」スニペットが含まれています。これにより、oEmbedの最大幅と高さを指定できます。

まず、無料のWPCodeプラグインをインストールしてアクティブ化する必要があります。 詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。

有効化したら、WordPress管理画面の コードスニペット » ライブラリ に移動してください。

WPCodeの既製のコードスニペットライブラリ

ここで、「Set oEmbed Max Width」を検索し、同じ名前の結果にマウスカーソルを合わせます。

次に「スニペットを使用」をクリックできます。

WPCodeコードスニペットプラグインによって提供される既製のoEmbedコード

WPCodeは、プラグインがすべて設定済みである「スニペットの編集」ページに移動します。

ここで、以下の既製のコードスニペットに気づくでしょう。

function wpcode_snippet_oembed_defaults( $sizes ) {
	return array(
		'width'  => 400,
		'height' => 280,
	);
}

add_filter( 'embed_defaults', 'wpcode_snippet_oembed_defaults' );

デフォルトでは、最大幅は「400」、最大高さは「280」に設定されます。必要に応じて高さと幅の属性を調整することを忘れないでください。

最後に、「非アクティブ」スライダーをクリックして「アクティブ」と表示させます。その後、「スニペットを保存」または「更新」ボタンをクリックするだけで、コードスニペットがライブになります。

カスタムPHPスニペットのアクティブ化

方法4:CSSを使用する(特定の埋め込みタイプの最大幅を設定する)

デフォルトでは、WordPressは自動的にサイトのさまざまな領域にCSSクラスを追加します。

また、埋め込みブロックにいくつかのCSSクラスが追加されます。これらのCSSクラスを使用して、WordPressブログの埋め込みの最大幅を設定できます。

特定の種類の埋め込み(例:埋め込みツイート)の最大サイズを設定したい場合に適しています。また、種類に関係なく、すべての埋め込みコンテンツの最大サイズを作成することもできます。

ターゲットにする必要があるCSSクラスを見つけるには、投稿またはページにコンテンツを埋め込み、ブラウザでプレビューするだけです。

次に、埋め込まれたコンテンツの上にマウスカーソルを置いて右クリックします。表示されるメニューで、「検証」ツールを選択します。

Chromeのインスペクトツール

これにより、WordPressが埋め込みコンテンツに追加したすべてのCSSクラスを表示する新しいパネルが開きます。これらのクラスを使用して、この種の埋め込みに最大幅を設定できます。

特定のoEmbedプロバイダーを対象とするには、通常.wp-block-providernameを使用します。そのため、パネルでこのクラスを探してください。

例えば、以下の画像では、.wp-block-embed-providername クラスに下線を引いています。この行には、.wp-block-embed-pinterestクラスも見られます。

埋め込みブロックのCSSクラスを見つける

.wp-block-embed-pinterestクラスを使用して、Pinterest埋め込みのみに最大幅を設定できます。

例えば:

.wp-block-embed-pinterest {
    max-width: 900px!important;
}

ターゲットにしたいコンテンツに応じて、.wp-block-embed-pinterestを別のCSSクラスに置き換える必要がある場合があることに注意してください。

すべての埋め込みに最大幅を設定したい場合は、次のスニペットを使用できます。

.wp-block-embed {
    max-width: 900px!important;
}

ウェブサイトにカスタムCSSを追加する最も簡単な方法は、WPCodeを使用することです。上記のプロセスと同じ手順で、新しいカスタムスニペットを作成するだけです。

ただし、今回は「コードタイプ」ドロップダウンを開き、「CSSスニペット」を選択します。

WordPressにCSSスニペットを追加する

これで、他のWPCodeスニペットを公開するのと同じ方法で、このスニペットを保存して公開できます。

これで、WordPressはこの値を埋め込みの最大サイズとして使用します。

ボーナスのヒント:WordPressにソーシャルメディアフィードを簡単に追加する方法

ソーシャルメディアプラットフォームから定期的にコンテンツを埋め込んでいる場合は、Smash Balloonを使用することで、多くの時間と労力を節約できます。

Smash BalloonはWordPressに最適なソーシャルメディアプラグインであり、ソーシャルメディアフィードをWordPressウェブサイトに簡単に追加できます。

Smash Balloonを使用して作成された埋め込みソーシャルメディア投稿の例

YouTube、Twitter、Instagram、およびTikTok動画を含む、すべての一般的なソーシャルメディア埋め込みをサポートしています。

さらに重要なことに、Smash Balloonはモバイルレスポンシブで、どのWordPressテーマでも動作するため、埋め込まれたコンテンツは常に素晴らしく見えます。

Smash Balloonを使用して作成された埋め込みFacebookタイムラインの例

この記事がWordPressでoEmbedの最大幅を設定する方法を学ぶのに役立ったことを願っています。また、WordPressにiFrameコードを簡単に埋め込む方法や、中小企業向けの最適なライブチャットソフトウェアの専門家による比較もご覧ください。

この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterFacebookでもフォローできます。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

43 CommentsLeave a Reply

  1. これの問題は、画像の最大幅も定義されたサイズになってしまうことです。エディタ内の埋め込み幅を制限したいが、画像の幅は制限したくない場合はどうすればよいですか?よろしくお願いします

  2. こんにちは、私には完璧に機能します。
    しかし、これはサイドバーがあるページ、フォーラムなど、さまざまな幅を持つサイト全体に影響します。
    これをbbpressフォーラムのページのみに影響するように区別することは可能ですか?

    とても役に立ちます、ありがとうございます!

  3. これが機能しない場合や、YouTube動画やその他のiframeコンテンツがリサイズされない場合は、次のコードをstyle.cssに追加する必要があります。

    /* embedとiframeがコンテナに収まるようにする */
    embed,
    iframe,
    object {
    max-width: 100%;
    }

    お役に立てば幸いです。そしてSyedさん、素晴らしい投稿をありがとうございます!

  4. iframe, object, embed { max-width: 100%; height:auto;} は使用できません。幅は正しくなり、動画はレスポンシブになりますが、ブラウザで表示する際の高さは修正されません。

    これで実際にできる方法はありますか?ほとんどすべてを試しましたが、関数でpxベースの幅を設定しているため、fitvidsさえ機能しません。しかし、モバイルではその幅が表示され、max-widthで修正しようとすると、ブラウザ内でも高さがめちゃくちゃになります。

    メディアクエリか何かだと思いますか?うーん、疲れた。

  5. こんにちは、ヒントありがとうございます。しかし、うまくいきません。function.phpファイルには以下が必要です:

    add_filter(’embed_defaults’,’yourthemename_embed_defaults’);
    function yourthemename_embed_defaults($defaults) {
    $defaults[‘width’]=600; // お好きな値に変更してください
    $defaults[‘height’]=360; // お好きな値に変更してください
    return $defaults;
    }

    素晴らしいです!
    よろしくお願いいたします。

    • このコードはうまく機能しません。テーマ名を入力しましたが、テーマがブロックされてしまいます。

    • 他のコメント者が気づいたかどうかはわかりませんが、コードにはカーリークォートが含まれており、サイトを壊します。ショートコードラッパーがコードを壊した変更を防ぐかどうかをテストします…

      add_filter('embed_defaults','yourthemename_embed_defaults');
  6. YouTubeのハイエンドアニメーション映画をWordPressブログに投稿しようとしています。プレビューでフレームの下部が切り取られています。再生矢印をクリックすると、この問題は解消されます。しかし、投稿のプレビューがエラーのように見えることに、映画製作者は正当に不満を持っています。投稿コードで高さと幅を調整しても、問題は解決しません。何かアイデアはありますか?

  7. こんにちは。

    幅についてはあなたのソリューションを使用しましたが、うまくいきました。しかし、高さを設定するにはどうすればいいですか?それは単に同じですか if ( ! isset( $content_width ) ) $content_width = 560; 「width」という単語を「height」という単語に置き換えるだけですか? 試しましたが、うまくいきませんでした…

  8. やった、動いた!でも、レスポンシブにするにはどうすればいい?
    何かアイデアはある?

  9. こんにちは、
    サイト内のすべてのiframeを100%幅に強制する方法はありますか?YouTubeだけでなく、
    約300個のiframeがあり、すべて固定サイズなので…よろしくお願いします。
    Josef

  10. こんにちは、
    サイト内のすべてのiframeを100%幅に強制する方法はありますか?YouTubeだけでなく、
    約300個のiframeがあり、すべて固定サイズなので…

  11. このコードをfunctions.phpに追加しましたが、何も変わりませんでした。おそらく私のテーマでは$content_widthが定義されていないためだと思います。

    定義に関するCodexへのリンクは見ましたが、私は開発者ではなく、すぐに相談できる人もいません。テーマに$content_width定義を追加するにはどうすればよいですか?どこに配置すればよいですか?よろしくお願いします!

  12. これは完璧に機能しましたが、YouTubeの設定でHDにデフォルト設定されているにもかかわらず、デフォルトでSD品質になっているビデオをHD品質に強制的にデフォルト設定する方法はありますか?

  13. この修正が機能するためには、$content_width変数がグローバルとして宣言されている必要があることに注意してください。

  14. WPは、インターネットにおけるマルチメディアの中心性について不明確な人々によって更新されているようです。なぜこの基本的な設定にコードの介入が必要なのか分かりません。WPは私のカラムの幅を明らかに判断できませんでした。とにかく、すべて修正されました。皆さん、最高です。

    • さて、ナイジェル、もっと奥深い話があります。彼らは「ユーザー」にとってWordPressをより使いやすくしようとしているのです。時間が経つにつれて、WordPressは次々とオプションを追加してきました。これは新規ユーザーにとっては非常に恐ろしいことです。だからこそ、彼らはオプションよりも決定を優先するルートを進んでいるのです。このoEmbedの最大幅の希望は、各テーマデザイナーがテーマ内でそれを定義すべきであり、エンドユーザーがそれについて心配する必要がないということです。

      管理者

  15. こんにちは
    投稿ありがとうございます。

    しかし、これはうまくいきません。あなたが言及した他の投稿をコメントに書きました。しかし、まだ動作させることができません。私はこれを入れました:

    functions.phpの先頭に置きましたが、サイト全体が機能しなくなりました。すべてが白くなり、FTP経由でファイルを編集して元に戻す必要がありました。

    何が間違っていますか?

    ありがとうございます!

  16. 可変幅またはレスポンシブデザインの場合、$content_width に適切な値は何ですか?

    • CSSでiframeにmax-width: 100%を設定することで、レスポンシブ対応をある程度機能させることができました。もちろん、高さはコンテンツの幅に応じて自動的に設定されますが、これだけでも余分なJSを使用せずに正しく機能するはずです。Fitvidが最善の方法ですが、これは私には機能しました。

        • レスポンシブデザインのために、このCSSコードを使用しています:

          iframe, object, embed { max-width: 100%; } (必要であれば -> height: auto を追加できます)

        • 残念ながら、RomanのCSSは一部のテーマで機能しないか、コアに組み込まれている新しいWP 3.6メディアプレーヤーで機能しません。試してみましたが、何も起こりませんでした。新しいWP 3.6プレーヤーもレスポンシブにするためにレスポンシブなテーマを探していますが、今のところうまくいっていません。2012年のテーマは非常にうまく処理しているように見えますが、この作業中のテーマとは何が違うのか分かりません。

  17. 私はWPとコーディングの初心者です。そのため、「if ( ! isset( $content_width ) ) $content_width = 600;」というコードをどこに挿入すればよいかわかりません。Suffusionテーマのfunction.phpファイルに移動しましたが、どこに正確に挿入すればよいかわかりません。ビデオ添付に関する記述がいくつかある場所に試しましたが、機能しません。私の場合は、WP 3.5にアップグレードしてから、埋め込みビデオがテーマに大きすぎます。

  18. ちょうど良いタイミングでリリースされました!!! 「エルヴィン」という名前もとても特別です。
    投稿ありがとうございます。

    • はい、完全に同意します。コードが適切に記述されたテーマであれば、それがないということはありません。しかし、そのようなテーマはたくさんあります。クライアントが使用していたテーマの1つには、その部分が欠けていました。全体的には良いテーマです。

      管理者

返信する

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。