大家好我想创建$ args查询以检查自定义帖子是否有类别,然后检查类别值是否为无,如果不是,则检查自定义字段值是true还是false。对于其他类型不可用的其他帖子类型。
这是我的代码
$args = array(
'posts_per_page' => 10,
'paged' => $page_no,
'post_type' => array('ct_photo', 'ct_event', 'ct_video', 'ct_thought'),
//'post_type' => 'ct_video',
'orderby' => 'post_date',
'order' => 'DESC',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'vid_category',
'compare' => 'IN',
'value' => array(10, 11, 12),
),
array(
'relation' => 'AND',
array(
'key' => 'vid_category',
'compare' => 'IN',
'value' => array(10, 11),
),
array(
'key' => 'display_home',
'compare' => '=',
'value' => 'true',
)
),
)
);
现在我想要的 我希望此查询将返回结果,该结果检查如果帖子类型是视频,则检查如果类别值可用,则检查自定义字段" display_home"是否为真,如果未选择类别,则必须在查询中显示。 对于其他帖子类型,它不会检查类别。
我试图使用案例&如果但那不起作用。
请帮帮我。
答案 0 :(得分:0)
哦,我找到了答案
SELECT wp.id, wp.post_type, wpm.meta_key, wpm.meta_value FROM `wp_posts` as wp Inner Join wp_postmeta as wpm ON wp.id = wpm.post_id where (wpm.meta_key = 'vid_category' AND wpm.meta_value ="true") OR (wpm.meta_key = 'display_home' and wpm.meta_value ="true") OR(wp.post_type IN ('ct_photo', 'ct_event', 'ct_thought')) and wp.post_status = 'publish' GROUP BY wp.id ORDER BY `id` ASC