【问题标题】:Wordpress $args select query from multiple custom post with custom category checkWordpress $args 从具有自定义类别检查的多个自定义帖子中选择查询
【发布时间】:2017-02-28 22:30:12
【问题描述】:

大家好,我想创建 $args 查询来检查自定义帖子是否有类别,然后检查类别值是否为无,如果没有,然后检查自定义字段值是真还是假。对于其他帖子类型,该类别不可用。

这是我的代码

$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”是否为真,如果未选择类别,则必须在查询中显示。 对于其他帖子类型,它不会检查类别。

我尝试使用 case & if 但这不起作用。

请帮助我。

【问题讨论】:

    标签: php mysql wordpress


    【解决方案1】:

    好的,我找到了答案

    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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      相关资源
      最近更新 更多