【问题标题】:use more than one meta key in query using posts_where in wordpress在 wordpress 中使用 posts_where 在查询中使用多个元键
【发布时间】:2013-10-11 06:59:21
【问题描述】:

我想在这里添加一个以上元键的查询:

$where .= " AND meta_key='order_assign_delivery_date' AND meta_value LIKE '0000%' And meta_key='order_assign_data' AND meta_value=0";

那么现在该怎么做呢?

上面的查询不起作用,这很明显

请指导我如何在 posts_where 过滤器的同一查询中使用多个元键

【问题讨论】:

    标签: php mysql wordpress


    【解决方案1】:

    首先你必须使用custom_posts_join过滤器设置两个postmeta

    function custom_posts_join($join){
     global $wpdb;
     $join .= " LEFT JOIN $wpdb->postmeta as meta_1 ON $wpdb->posts.ID = meta_1.post_id LEFT JOIN $wpdb->postmeta as meta_2 ON $wpdb->posts.ID = meta_2.post_id";
     return $join;
    }
    add_filter( 'posts_join' , 'custom_posts_join');
    

    然后你现在可以设置posts_where

    function filter_where( $where = '' ) {
           $where .= " AND meta_1.meta_key='order_assign_delivery_date' AND meta_1.meta_value LIKE '0000%' And meta_2.meta_key='order_assign_data' AND meta_2.meta_value=0";
    }
    add_filter('posts_where', 'filter_where');
    

    让我知道这是否适合你!

    【讨论】:

    • 知道如何以这种方式返回多个 meta_key 和 meta_value 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2013-08-17
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多