テーマ

【WP】カスタムフィールドで記事を絞り込み!条件分岐の記述方法

便利だよ!カスタムフィールド!!

カスタムフィールドでの絞り込みをやったのでそのまとめ。
例えば、「今日のおススメ商品」としてトップページに任意の記事だけ表示したい時に使えます♪
ということで、今回は記事をピックアップするやり方。

目次

今回のポイント!カスタムフィールドで真偽を判断する

今回の場合は、(「今日のおススメ商品」として)記事を表示するかしないか、1or0・TRUEorFALSEのような真偽で判断します。

カスタムフィールドを使ってみる

まずカスタムフィールドに入力します。

カスタムフィールドの使い方

  • 名前 : pickup
  • 値 : 1

今回は上記のようにしました。今回は真偽なので数字(TRUE=1,FALSE=0)を入れてますが、値には文字列をいれても大丈夫です。

プラグイン:カスタムフィールドを使う場合

プラグイン使って作ったカスタムフィールドも、投稿画面の表示オプションでカスタムフィールド表示させるとそこにも表示されます。
※ここでフィールド削除すると、プラグインで表示させてる入力フィールドの入力内容が消えるので注意。←やった人

プラグインでフィールドタイプ真偽で作ったものも、数字の1がTRUEになるようになってました。

テンプレートの修正

  • カスタムフィールド名前 : meta_key
  • カスタムフィールド値 : meta_value
  • カスタムフィールドを評価する演算子 : meta_compare

これでカスタムフィールドを評価していきます。

絞り込みのためのソース

[php toolbar="true"]

$args = Array(
'post_type' => 'post', //投稿記事から
'orderby' => 'rand', //ランダム表示
'posts_per_page' => 6, //表示件数は6件
'meta_key' => 'pickup', //カスタムフィールド名
'meta_value' => 1 //カスタムフィールド値
);
$pickupitem = new WP_Query($args); //絞り込みの条件で抽出した記事の配列を$pickupitemに代入
if($pickupitem -> have_posts()) :
while ($pickupitem -> have_posts()) : $pickupitem -> the_post();
//表示させたい処理
endwhile;
endif;
[/php]
私の場合は、page.phpを商品カテゴリのトップページのようにしているので、中でカテゴリ毎に条件分岐させて上述のソース書いてます。

カスタムフィールドをサイトの表示させる場合

echo get_post_meta($post->ID,'カスタムフィールド名',true);

1つのカスタムフィールド名に対して、1つしか値がない場合は、上記で表示されます。
第3引数をtrueにすると文字列になります。falseにした場合は、配列で表示されます。

プラグイン:カスタムフィールドを使っている場合

プラグインによって、関数が用意されています。便利ぃ!

  • the_field('カスタムフィールド名');
  • get_field('カスタムフィールド名');

以上です!
簡単・気軽に使えて、条件分岐など柔軟に使えるカスタムフィールド。今回初めて使いましたが、かなり便利ですねー。私はカスタム投稿タイプとかと合わせて使ったのですが、本当何でも出来ちゃいます。
利用方法は考え方次第で∞ですよ★

  • この記事を書いた人

サオリサン

WEB制作のディレクター・制作・運営支援をしてます(フリーランス&会社員)。アクセス解析してサイト改善するのが好き。

-テーマ