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

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

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

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

Q&A

1回答

2072閲覧

Smart Custom Fieldsを使用したサブループで、表示件数を設定したい

kskk

総合スコア2

WordPress

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

0グッド

0クリップ

投稿2021/09/04 11:15

前提・実現したいこと

Smart Custom Fieldsで、繰り返しフィールドを使用しています。
page-○○.phpにサブループを作り、表示件数を設定したいのですがうまくいきません。

発生している問題

'posts_per_page'で表示件数を1と指定していますが、Smart Custom Fieldsで入力した5つ全てのフィールドが表示されてしまいます。

該当のソースコード

<?php $paged = get_query_var('paged') ? get_query_var('paged') : 1; $loop = new WP_Query([ 'post_type' => 'page', 'page_id' => 34, 'posts_per_page' => 1, 'orderby' => 'date', ]); if ($loop->have_posts()): while ($loop->have_posts()): $loop->the_post(); $cast = SCF::get('CAST1'); foreach ($cast as $fields => $filed_value): $img = wp_get_attachment_image_src( $filed_value['cast-image1'], 'large' ); ?> <ul class="list"> <div class="cast-item"> <div class="cast-item-picture"><img src="<?php echo $img[0]; ?>" alt="小池博史"></div> <div class="cast-item-box"> <div class="cast-item-description"><?php echo $filed_value[ 'cast-role1' ]; ?></div> <div class="cast-item-name"><?php echo $filed_value[ 'cast-name1' ]; ?></div> <?php if ($filed_value['cast-performance1']): ?> <div class="cast-item-supplement"> (<?php echo $filed_value['cast-performance1']; ?>) </div> <?php else: ?> <div class="cast-item-supplement">&nbsp;</div> <?php endif; ?> <div class="cast-item-text"> <?php echo nl2br($filed_value['cast-introduction1']); ?> </div> </div> </div> <?php endforeach; ?> <?php endwhile; ?> <?php else: ?> <p>現在記事はありません。</p> <?php endif; ?> </ul>

試したこと

foreachのループ文に誤りがあるのかと思い色々と試しましたが、改善されませんでした。

ヒントなど、何かご教示頂ければ幸いです。

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

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

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

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

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

kei344

2021/09/04 12:46

「SCF::get('CAST1')」で取得できるものの中から1つだけ表示したい、ということでしょうか。
kskk

2021/09/04 12:51

おっしゃる通りです!
guest

回答1

0

どういった構成になっているのかがわかりませんが、そもそもnew WP_Queryは不要では?
もし別の固定ページから読み込むのであればSCF::get('CAST1',34);とでもすればよいです。

PHP

1<?php 2$loop->the_post(); 3$cast = SCF::get('CAST1'); 4$filed_value = $cast[ 0 ]; // これで採れると思われます。(1件でもあれば。無い場合を一応想定しましょう) 5$img = wp_get_attachment_image_src( $filed_value['cast-image1'], 'large' ); 6 ?> 7<ul class="list"><!-- ← ul直下にdivはHTMLの文法としておかしい --> 8 <li class="cast-item"><!-- ← liに変更--> 9 <div class="cast-item-picture"><img src="<?php echo $img[0]; ?>" alt="小池博史"></div> 10 <div class="cast-item-box"> 11 <div class="cast-item-description"><?php echo $filed_value[ 12 'cast-role1' 13 ]; ?></div> 14 <div class="cast-item-name"><?php echo $filed_value[ 15 'cast-name1' 16 ]; ?></div> 17 <?php if ($filed_value['cast-performance1']): ?> 18 <div class="cast-item-supplement"> 19 (<?php echo $filed_value['cast-performance1']; ?>) 20 </div> 21 <?php else: ?> 22 <div class="cast-item-supplement">&nbsp;</div> 23 <?php endif; ?> 24 <div class="cast-item-text"> 25 <?php echo nl2br($filed_value['cast-introduction1']); ?> 26 </div> 27 </div> 28 </li><!-- ← liに変更--> 29 <?php 30 // endforeach; // 使わない 31 ?> 32</ul>

【【WordPressプラグイン】Smart Custom Fields (SCF) 出力方法一覧 – Meowriosity[ミャリオシティ]】
https://millmi.com/1461/

投稿2021/09/04 13:00

kei344

総合スコア69458

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問