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

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

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

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

PHP

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

Q&A

2回答

864閲覧

WordPressで『アップロード』『メディアライブラリーから追加』の両方の投稿画像を抽出・出力する

omuraise

総合スコア14

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/08/07 12:19

WordPressで『アップロード』『メディアライブラリーから追加』の両方の投稿画像を抽出・出力する

WordPressでHP製作をしていますが、singleページで投稿画像10枚分の
画像ギャラリーを製作したいと考えています。
下記、コードを入力した場合、アップロードから投稿した画像は抽出・出力することが
できるのですが、メディアライブラリーから追加した画像は抽出・出力することが
できません。両方どちらからも画像投稿しても抽出・出力するには、どこの部分を
修正したらいいでしょうか。
画像はimgタグではなく、divのbackground-imageで出力するため、urlを取得できるようにコードを書いています。

また、私はウェブデザイナーでPHP言語等には詳しくないのですが、
画像URLを抽出・出力する際はどのようなテンプレートタグ(関数?)を使用することが
一般的なのでしょうか?

初歩的な質問で大変恐縮ですが、製作が完全にストップしているため、
アドバイス等を頂戴できればと思います。
宜しく御願いします。

該当のソースコード

PHP

1<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 2<article class="work"> 3 <div class="title"> 4 <h2> 5 <?php if(!empty(the_title())): ?> 6 <?php the_title();?> 7 <?php else: ?> 8 屋根修復工事 9 <?php endif; ?> 10 </h2> 11 </div> 12 <div class="images"> 13 <?php 14 $first_image = '/<img.*?src=(["\'])(.+?)\1.*?>/i'; 15 preg_match($first_image, $post->post_content, $image_url); 16 ?> 17 <?php if(!empty($image_url[2])): ?> 18 <div class="mainImg" style="background-image:url('<?php echo $image_url[2] ;?>')"> 19 <?php else: ?> 20 <div class="mainImg" style="background-image:url('<?php bloginfo('template_url'); ?>/images/noImg.jpg')"> 21 <?php endif; ?> 22 <div class="cat"><?php the_category(); ?></div> 23 </div> 24<!-- ここまでサムネイル画像の出力 --> 25 <?php 26 // この投稿の添付ファイル(画像)を取得 27 $attachments = get_children(array( 28 'post_parent' => $post->ID, // この投稿のID 29 'post_status' => 'inherit', // 公開ステータス(post_parentに準じる) 30 'post_type' => 'attachment', //投稿タイプ(添付ファイル) 31 'post_mime_type' => 'image', // MIMEタイプ(画像) 32 'orderby' => 'menu_order', // ソート(任意) 33 'order' => 'ASC' // 並び順(昇順) 34 )); 35 ?> 36 <ul class="imglist"> 37 <?php 38 $i=1; 39 foreach ( $attachments as $attachment_id => $attachment ) { 40 $thumb_image = wp_get_attachment_link($attachment_id, array(700,700)); 41 echo '<li class="navImg">'.$thumb_image.'</li>'."\n"; 42 $i++; 43 } 44 ?> 45 </ul> 46 </div> 47 <div class="clear"></div> 48 <div class="ankenmei"> 49 <p class="namae">案件名</p> 50 <p class="title"> 51 <?php if(!empty(the_title())): ?> 52 <?php the_title();?> 53 <?php else: ?> 54 屋根修復工事 55 <?php endif; ?> 56 </p> 57 </div> 58 <div class="point"> 59 <p class="namae">Point</p> 60 <p class="title"><?php $content = get_the_content(); 61 $content = wp_strip_all_tags( $content ); 62 echo $content; ?></p><!-- 本文テキストのみ出力 --> 63 </div> 64 <?php 65 function get_first_post_image_url() { 66 if(!is_single()) return; 67 global $post; 68 preg_match('/<img.+src=[\'"](^\'"]+)[\'"].*>/', $post->post_content, $matches); 69 return $matches[1]; 70 } 71 ?> 72</article> 73<?php endwhile; else : ?> 74 <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p> 75<?php endif; ?>

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

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

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

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

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

guest

回答2

0

メディアライブラリーから追加した画像は抽出・出力することができません

投稿画面からアップロードした画像はその投稿と親子関係があるが、メディアライブラリーからアップロードした画像は親子関係を持たないので無理

メディアライブラリから新規追加した場合は画像をリスト表示にして【投稿に添付】を押して親となる記事を手動設定するしか無理だろ
画像を複数選択して一度で設定もできるから苦にはならんと思うが

投稿2019/08/07 13:15

編集2019/08/08 04:54
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

画像はimgタグではなく、divのbackground-imageで出力するため、

という事なら、カスタムフィールドを使って、スライダーに使う画像を選択(あるいはアップロードして選択)させるようにした方が良いかと思います。

投稿2019/08/07 14:07

yukikp

総合スコア797

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

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

omuraise

2019/08/12 23:52

yukikp様 ご回答ありがとうございます。 カスタムフィールドという考えに至りませんでした。たしかにクライアント様に画像更新をしてもらうなら、そちらの方が親切ですね。 適切なアドバイスありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問