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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

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

Q&A

解決済

1回答

426閲覧

【WordPress】カスタムフィールドを用いて、「数値」の条件分岐を行う方法

nasumi

総合スコア11

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

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

0グッド

0クリップ

投稿2022/09/16 00:57

編集2022/09/16 01:17

前提

カスタムフィールドを用いて、「数値」の条件分岐を行う方法

お世話になります。以下の条件に基づいたコンテンツをループ処理で出力する方法を模索しております。
WordPressのカスタムフィールドプラグイン「Advanced Custom Fields PRO」を導入しています。

前提
・カスタム投稿タイプを作成し、その中でブログ記事を30 ~ 40件ほど作成しています。
・アーカイブページにスライドショーを配置し、その中でピックアップした記事をスライドショーで流すような仕様となっています。

実現したいこと

実装したいループ条件
・カスタムフィールドの「数値」の値が「0」であるならその記事はスライドショーに表示しない
・カスタムフィールドの「数値」の値が「1以上」であるなら、その記事はスライドショーに表示する、
数値の値が「2」「3」などの場合、スライドショー内のブログ記事を表示する順番も2番目、3番目と、カスタムフィールドの数値を変えるだけで、表示する順番を指定出来るような仕組みとしたい。

イメージ説明
カスタムフィールドの管理画面は上記のようなものになります。デフォルトでは「0」なので、数値を上げていくことで、上記条件に基づくものを出力するという算段です。

該当のソースコード

「check-num」というのは今回の「数値のカスタムフィールド」に該当するキーになります。

html

1 <!-- スライドショーエリア --> 2 <div class="swiper-container"> 3 <div class="swiper"> 4 <div class="swiper-wrapper"> 5 <?php $args = array( 6 'numberposts' => -1, // 表示する記事の数 7 'post_type' => 'blog', // カスタム投稿のタイプ名 8 'meta_query' => [ 9 [ 10 'key' => 'check-num', 11 'value' => '1', 12 'compare' => '=' 13 ] 14 ], 15 ); 16 $customPosts = get_posts($args); 17 if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post ); 18 ?> 19 <div class="swiper-slide"> 20 <a href="<?php the_permalink(); ?>"> 21 <div class="boxslider_item_image"> 22 <?php 23 if ( has_post_thumbnail() ) { 24 the_post_thumbnail(); 25 } 26 ?> 27 </div> 28 29 <?php if ( get_field('catchphrase') ): ?> 30 <h1 class="boxslider_item_title"> 31 <?php the_field('catchphrase'); ?> 32 </h1> 33 <?php endif;?> 34 35 <p class="boxslider_item_caption"> 36 <?php the_title(); ?> 37 </p> 38 </a> 39 </div> 40 <?php endforeach; ?> 41 <?php endif; wp_reset_postdata(); //クエリのリセット ?> 42 </div> 43 </div> 44 45 <div class="swiper-button-prev"></div> 46 <div class="swiper-button-next"></div> 47 </div> 48 <!-- スライドショーエリア --> 49

試したこと

'value' => '1',の値を!0のように書き換えてみたが、エラーとなり、画面自体が表示されなくなったので中止。

補足情報(FW/ツールのバージョンなど)

スライドショーに関しては「swiper」プラグインを使用しています。

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

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

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

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

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

guest

回答1

0

自己解決

この方法は諦めました。
そもそも投稿日を個別に調整することで、ピックアップすることができたのでその方法に切り替えました。
ありがとうございました。

投稿2022/09/22 23:10

nasumi

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問