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

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

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

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

PHP

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

Q&A

解決済

2回答

2078閲覧

カスタムフィールテンプレートで登録した画像を繰り返しのなかで登録の有無による条件分岐を行う

raidomaru

総合スコア106

WordPress

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

PHP

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

0グッド

0クリップ

投稿2016/11/25 09:44

###前提・実現したいこと
Wordpressでカスタムフィールテンプレートで登録した画像とリンクをセットにして出力をしています。
写真が登録されていない場合、デフォルトの画像を設定することになり、
セットが1組の時は問題なくできたのですが、複数になるとうまくいきません。

よろしければご教示ください。

###該当のソースコード
カスタムフィールテンプレートの設定

[講師情報] type = fieldset_open legend = 講師情報 multipul = true multipleButton = true [講師写真] type = file [講師詳細リンク] type = text size = 50 [講師情報] type = fieldset_close

php

1 <?php 2 $teacher_img = wp_get_attachment_image_src(post_custom('講師写真'),'full'); 3 $teacher_img_ids = post_custom('講師写真'); 4 $teacher_img_full = $teacher_img[0]; 5 $teacher_link = post_custom('講師詳細リンク'); 6 $teacher_info = post_custom('講師情報'); 7 if(!empty($teacher_info)){ 8 if($teacher_info == 1){ 9 if(!empty($teacher_img)){ 10 echo '<a href="'.$teacher_link.'" class="iframe">'.'<img src="'.$teacher_img_full.'" class="left"></a>'; 11 } else { 12 echo '<a href="'.$teacher_link.'" class="iframe">'.'<img src="' . get_bloginfo('template_directory') . '/shared/images/teacher_thumb_noimg.png" class="left"></a>'; 13 } 14 } else { 15 for($i=0;$i<$teacher_info;$i++){ 16 $teacher_img = wp_get_attachment_image_src($teacher_img_ids[$i],'full'); 17 echo '<a href="'.$teacher_link[$i].'" class="iframe">'. '<img src="'. $teacher_img[0] .'" class="left"></a>'; 18 } 19 } 20 } 21 ?>

###試したこと
下記のように記載してみましたが、1つでも設定のない画像があると全部ないことになってしまいます。

php

1 for($i=0;$i<$teacher_info;$i++){ 2 $teacher_img = wp_get_attachment_image_src($teacher_img_ids[$i],'full'); 3 if(!empty($teacher_img)){ 4 echo '<a href="'.$teacher_link[$i].'" class="iframe">'. '<img src="'. $teacher_img[0] .'" class="left"></a>'; 5 } else { 6 echo '<a href="'.$teacher_link[$i].'" class="iframe">'.'<img src="' . get_bloginfo('template_directory') . '/shared/images/teacher_thumb_noimg.png" class="left"></a>'; 7 } 8 }

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

回答2

0

ベストアンサー

プラグインCustom Field Templateはその仕様上、
写真がないfieldsetがあると、その箇所がつめられて保存されるみたいです。
したがって、リンクと写真の関係がずれてしまう可能性があります。

なので、仕様を再検討したほうがいいと思います。

保存前
[リンク1][写真1]
[リンク2]
[リンク3][写真3]

保存後
[リンク1][写真1]
[リンク2][写真3]
[リンク3]

投稿2016/11/26 04:41

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

raidomaru

2016/11/27 12:34

そうなのですね。ありがとうございます!
guest

0

繰り返しに対応した下記のようなプラグインもあります。

【wordpressのプラグインCustom Field Suite、基本の使い方からネストループ(入れ子)の実装まで解説 – lesson me】
http://www.lesson5.info/?p=300

【Custom Field Suite — WordPress Plugins】
https://ja.wordpress.org/plugins/custom-field-suite/

【WordPress のカスタムフィールドを簡単・便利に使えるようになるプラグイン「Smart Custom Fields」作った。 – モンキーレンチ】
http://2inc.org/blog/2014/10/09/4426/

【Smart Custom Fields — WordPress Plugins】
https://ja.wordpress.org/plugins/smart-custom-fields/

投稿2016/11/26 06:10

kei344

総合スコア69364

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問