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

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

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

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

Q&A

解決済

1回答

2633閲覧

wordpressでトップページに子カテゴリ一覧を表示したい

ohagin

総合スコア14

WordPress

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

0グッド

1クリップ

投稿2017/06/08 01:26

トップページに特定の親カテゴリに属する子カテゴリの一覧を、カスタムフィールドを利用して表示したいです。
特定の親カテゴリに属する子カテゴリを表示することは出来たのですが、
カスタムフィールドの値をとってくることがどうしてもできません。

カスタムフィールドは、画像と、真偽のチェックボックスです。
チェックボックスにチェックが入っていれば表示するようにしたいです。

下記のコードでは、特定の親カテゴリに属する子カテゴリのタイトル一覧は表示できたのですが、どうしてもカスタムフィールドに入れた画像を表示することができません。

<?php $categories = get_terms( 'category', array( 'orderby' => 'count', 'hide_empty' => 0, 'child_of' => 2, ) ); foreach($categories as $value): $cat_id = $value->ID; $post_id = 'category_'.$cat_id; $catimg = get_field('画像',$post_id); $img = wp_get_attachment_image_src($catimg, 'full'); ?> <div><?php echo $value->name; ?></div> <div><a href="<?php echo get_category_link($value->term_id); ?>"><img src="<?php echo $img[0]; ?>" alt="<?php echo $value->name; ?>" /></a></div> <?php endforeach; ?>

真偽のif文はカテゴリでどうやって入れれば良いのか全く分からず、とりあえず画像を表示できるようにするのが先決だと思いまだ試せておりません。

間違っている部分がお分かりになる方、教えて下さい。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

とりあえず、以下のコードで画像は表示できました。
(カスタムフィールドはプラグインのACFを利用。
フィールドタイプは画像で、返値が画像URL)

php

1<?php 2$categories = get_terms( 'category', array( 3 'orderby' => 'count', 4 'hide_empty' => 0, 5 'child_of' => 2, 6 ) ); 7 8 foreach($categories as $value): 9 10$cat_id = $value->term_id; //変更 11$post_id = 'category_'.$cat_id; 12 13$catimg = get_field('cat-icon',$post_id); 14//$img = wp_get_attachment_image_src($catimg, 'full'); //使用しない 15?> 16 17<div><?php echo $value->name; ?></div> 18<div><a href="<?php echo get_category_link($value->term_id); ?>"><img src="<?php echo $catimg;/*変更*/ ?>" alt="<?php echo $value->name; ?>" /></a></div> 19 20<?php endforeach; ?>

var_dump();で、期待した結果が出ているか確認して作業してみてはどうでしょう。

追記

php

1<div><?php echo $value->name; ?></div> 2<div><a href="<?php echo get_category_link($value->term_id); ?>"><img src="<?php echo $catimg;/*変更*/ ?>" alt="<?php echo $value->name; ?>" /></a></div> 3

この部分を以下のようにしてみてはどうでしょう。

php

1<?php 2 if(get_field('真偽', $post_id)) { 3 echo '<div>'.$value->name.'</div> 4<div><a href="'.get_category_link($value->term_id).'"><img src="'.$catimg.'" alt="'.$value->name.'" /></a></div>'; 5 } else { 6 echo ''; 7} 8?> 9

投稿2017/06/08 02:37

編集2017/06/08 05:00
8-0_nyan5

総合スコア2352

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

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

ohagin

2017/06/08 03:03

ありがとうございます。 画像を理想の形で表示することができました。
ohagin

2017/06/08 03:30

条件分岐を色々と調べているのですが、 投稿一覧の真偽ばかりでカテゴリの真偽表示がまったくわかりません。 宜しければご教授の程よろしくお願いいたします。
8-0_nyan5

2017/06/08 04:29

真偽チェックで表示したいのは、画像ですか? 画像も含めた子カテゴリですか?
ohagin

2017/06/08 04:54

ご返答下さりありがとうございます。 画像も含めた子カテゴリの表示です。 色々試しているのですが、すべて消えてしまうか、すべて表示されるかどちらかとなっております。
ohagin

2017/06/08 05:47

教えていただきましたコードで、理想の形となりました。 画像を読み込むように変数に入れてと試行錯誤していたのですが、 まったく違う形で驚きました。 なぜそうなるのかなど、きちっと勉強します。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問