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

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

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

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

Q&A

解決済

1回答

3355閲覧

Wordpressの記事のカスタマイズ Posts 2 Posts、Advanced Custom Fieldsの使用

akspect

総合スコア9

WordPress

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

1グッド

0クリップ

投稿2016/06/07 03:49

編集2016/06/07 17:26

Wordpressを使ったサイトを作成しているのですが、Advanced Custom Fieldsで作成したカスタムフィールドで設定した画像が表示されません。

簡単に仕様の説明を致します。

「イベント開催」の記事(デフォルトの投稿記事)に担当者の名前、顔写真、所属などを書く項目があります。
複数人の担当者を選択することができ、リンク先はイベント担当者の経歴などが書いている個別の記事に飛びます。
「イベント担当者」の個別の記事はカスタム投稿タイプで実装しています。

リンク先がタクソノミーの一覧ではなく担当の人の個別記事なので、「イベント担当者」のカスタム投稿タイプを作り、カスタムフィールドで項目を追加しています。

Posts 2 Posts、Advanced Custom Fieldsの2つのプラグインを組み合わせて記事を関連づけているのですが、画像の部分がうまくいきません。

コードは以下のようにしています。

<?php $args = array( 'connected_type' => 'posts_to_pages', 'connected_items' => get_queried_object(), 'nopaging' => true, 'suppress_filters' => false ); $connected_posts = get_posts( $args ); ?> <div class="info"> <?php foreach ( $connected_posts as $post ) { setup_postdata( $post ); $photo = get_field('expert_photo'); $img = wp_get_attachment_image_src($photo, 'full'); ?> <figure class="article-circle-02"><a href="<?php the_permalink(); ?>"><img src="<?php echo $img[0]; ?>" alt="#" width="<?php echo $img[1]; ?>" height="<?php echo $img[2]; ?>"></figure> </a> <?php } wp_reset_postdata(); ?> </div> ``` var_dump($img)ではbool(false) がでます。 var_dump($photo)すると、 ``` array(10) { ["id"]=> int(2510) ["alt"]=> string(12) "test" ["title"]=> string(14) "img_experts_03" ["caption"]=> string(0) "" ["description"]=> string(0) "" ["mime_type"]=> string(10) "image/jpeg" ["url"]=> string(70) "画像のurl" ["width"]=> int(150) ["height"]=> int(150) ["sizes"]=> array(12) { ["thumbnail"]=> string(70) ""画像のurl" ["thumbnail-width"]=> int(150) ["thumbnail-height"]=> int(150) ["medium"]=> string(70) ""画像のurl" ["medium-width"]=> int(150) ["medium-height"]=> int(150) ["medium_large"]=> string(70) ""画像のurl" ["medium_large-width"]=> int(150) ["medium_large-height"]=> int(150) ["large"]=> string(70) ""画像のurl" ["large-width"]=> int(150) ``` となります。 他のページと同じようにしているつもりですが、foreach文のせいかwp_get_attachment_image_srcが機能しておらず画像が表示されません。 どのようにすれば良いでしょうか。 すみませんがご教授頂けたら幸いです。 よろしくお願いします。
kei344👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

wp_get_attachment_image_src の引数は「画像ID( attachment_id )」です。また、dumpの内容から、わざわざ wp_get_attachment_image_src を使わなくとも$photoをそのまま使えば良いのではないでしょうか。

PHP

1$img = array(); 2$img[0] = $photo["url"] 3$img[1] = $photo["width"] 4$img[2] = $photo["height"]; 5// or 6$img = wp_get_attachment_image_src($photo["id"], 'full');

【wp_get_attachment_image_src:WordPress私的マニュアル】
http://elearn.jp/wpman/function/wp_get_attachment_image_src.html


Posts 2 Posts、Advanced Custom Fieldsの2つのプラグインを組み合わせて記事を関連づけているのですが、

Advanced Custom Fields の「関連ページ」を使えば記事を関連付けることが可能です。複数のプラグインを使うよりは問題が起きにくいと思いますのでお勧めです。

【Advanced Custom Fieldsの関連が便利すぎてヤバい|WordPressプラグイン】
http://irec.jp/wordpress/plugin/relevance-ac-fields/

【Advanced Custom Fieldsの使い方】
http://kotori-blog.com/wordpress/advanced-custom-fields/

【WordPress『Advanced Custom Fields』プラグインを使用して、関連ページの情報を取得する方法 | com4tis】
http://com4tis.net/wordpress-advanced-custom-fields-plugin/

投稿2016/06/07 18:06

kei344

総合スコア69366

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

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

akspect

2016/06/09 08:13 編集

有難う御座います。 Advanced Custom Fieldsで一本化できたのですね... フィールドタイプを関連性にして、 表示させたい箇所に <?php $person = get_field('関連性のフィールド名'); foreach($person as $val): $photo = get_field('画像のフィールド名',$val->ID); $img = wp_get_attachment_image_src($photo["id"], 'full'); ?> <figure class="article-circle-02"><img src="<?php echo $img[0]; ?>" width="<?php echo $img[1]; ?>" height="<?php echo $img[2]; ?>"></figure> <?php endforeach; ?> と書いたら、画像の表示とともに実装できました。 個人的にはwp_get_attachment_image_src()の方で実装する方が書きやすいので、そのようにしています。 有難う御座いました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問