カスタムフィールドに入力された値と指定したカテゴリに紐づいているかどうかを条件にデータ抽出&表示する方法のメモ。
ソースコード
<?php
$item_id = get_the_ID();
$delivery_method = get_field('info', $item_id);
?>
<?php if($delivery_method && in_category('assort')):?>
<?php
$cat_assort = get_category_by_slug("assort");
$cat_assort_id = $cat_assort->cat_ID;
$args = array(
'post_type' => array('post'),
'posts_per_page' => -1,
'paged' => 1,
'category__and' => array($cat_assort_id),
'post__not_in' => array($item_id),
'meta_query' => array(
array(
'key' => 'info',
'value' => $delivery_method,
'compare' => '='
)
)
);
$item_query = new WP_Query($args);
<?php endif;?>
解説
in_category() 投稿が指定カテゴリに属しているか判定
in_category()の第一引数にカテゴリのスラッグを指定して対象の投稿がカテゴリに属しているか判定出来ます。
<?php if(in_category('assort')):?>
<?php endif;?>
meta_query を使いカスタムフィールドの値で絞り込む
以下のコードでは、”info” というカスタムフィールドに入力された値を条件に絞り込んでいます。
'meta_query' => array(
array(
'key' => 'info',
'value' => $delivery_method,
'compare' => '='
)
)
動作環境情報
エックスサーバー(x10) PHP 7.3.14 MySQL 5.7 WordPress 5.3.2
コメント