質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

390閲覧

WordPressのカスタム投稿からyoutube動画を挿入して、<?php the_content(); ?>を利用して動画を表示させているのですが、縦横比が崩れてしまうので調整したいです。

kenta1120

総合スコア39

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/04/21 03:36

現在、動画クリエイター様のポートフォリオを制作しております。
その為、今後はクライアント様本人でも簡単に自身が制作した動画をアップ出来、且つ制作実績の一覧としても残すことが出来るように、カスタム投稿タイプを使って、記事入力欄にてyoutubeのiframeタグをコピペして、その動画を引っ張り出すことで、動画の一覧表示をさせたいと思っております。
3つのyoutube動画を横並びにさせていです。

現状は以下のコードを実装することで、<?php the_content(); ?>にて記事入力欄にてコピペした動画を表示させております。
しかし、現状は以下の画像にある表示となっております。
イメージ説明

PHP

1<div class="works-container wow fadeIn" data-wow-delay="1.5s"> 2 <?php 3 $args = array( 4 'post_type' => 'work', 5 'posts_per_page' => '3', 6 'orderby' => 'DESC', 7 ); 8 9 $top_page = new WP_Query($args); 10 ?> 11 <div class="works-videoWrap"> 12 <?php while ( $top_page->have_posts() ) : $top_page->the_post(); ?> 13 <div class="works-video"> 14 <?php the_content(); ?> 15 </div> 16 <?php endwhile; wp_reset_postdata(); ?> 17 </div> 18</div>

自身で試した事としましては、以下の通りです。

「works-video」を「works-videoWrap」の親要素で囲い、works-videoWrapに対して、max-width: 30%;を当てた。

エラーは無いが動画は表示されない状態。

<?php while ($top_page->have_posts() ) : $top_page->the_post(); ?>から始まるループ部分を「works-videoWrap」の親要素で囲み、「works-videoWrap」に対してmax-width: 30%;を当てた.


動画のサイズは綺麗に表示されたが縦並びの為、「display: flex;」を当てたが、また動画の幅が狭まる。


「works-video」と「iframe」のそれぞれに付与したプロパティに「!important」を付けた。

特に変化無し。


iframeを囲う「works-video」の要素に対して「padding-top: 56.25%」ではなく、
「aspect-ratio: 16/9;」を与える

動画が表示されない

また、あらゆる参考記事を探してはいるのですが、どの記事においてもyoutubeのレスポンシブ対応におけるコードの書き方としては、
以下の書き方しか見つかりません。
今回は<?php the_content(); ?>から動画を引っ張ってきている為に少し違った実装方法が必要なのか?とも考えましたが、検証ツールを確認すると、「works-video」のタグ内にはiframeタグが生成されていることが確認できるので、基本的には以下のコードの考え方で合っているのか?とも考えております。
イメージ説明

HTML

1.video{ 2width:100%; 3padding-bottom: 56.25%; 4height:0px; 5position: relative; 6} 7.video iframe{ 8position: absolute; 9top: 0; 10left: 0; 11width: 100%; 12height: 100%; 13}

以下に改めて該当箇所のコードを添付致します。

PHP

1<div class="works-container wow fadeIn" data-wow-delay="1.5s"> 2 <?php 3 $args = array( 4 'post_type' => 'work', 5 'posts_per_page' => '3', 6 'orderby' => 'DESC', 7 ); 8 9 $top_page = new WP_Query($args); 10 ?> 11 <div class="works-videoWrap"> 12 <?php while ( $top_page->have_posts() ) : $top_page->the_post(); ?> 13 <div class="works-video"> 14 <?php the_content(); ?> 15 </div> 16 <?php endwhile; wp_reset_postdata(); ?> 17 </div> 18 </div>

CSS

1.works-container { 2 display: flex; 3 justify-content: space-around; 4 max-width: 128rem; 5 margin: 4rem auto 0; 6 padding: 0 1rem; 7 flex-wrap: wrap; 8} 9 10.works-videoWrap { 11 width: 109rem; 12 margin: 3rem auto 0; 13 display: flex; 14} 15 16.works-video { 17 position:relative; 18 height: 0; 19 width: 30%; 20 padding-top: 56.25%; 21} 22 23.works-video iframe { 24 position: absolute; 25 top: 0; 26 left: 0; 27 width: 100%; 28 height: 100%; 29 30}

以上です!
よろしくお願い致します!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

以下のコードにか買い換えて、

PHP

1<?php while ( $top_page->have_posts() ) : $top_page->the_post(); ?> 2 <div class="works-videoWrap"> 3 <div class="works-video"> 4 <?php the_content(); ?> 5 </div> 6 </div> 7 <?php endwhile; wp_reset_postdata(); ?>

.works-videoWrap {
width: 30%;
padding: 0;
box-sizing: border-box;
}
を当てることで解決できました。

投稿2022/04/21 05:11

kenta1120

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問