如何将META_QUERY更改为SQL wpdb Query?

时间:2011-11-18 作者:Fernando Baltazar

我想提取与3个元数据字段(bed\\u value、bath\\u value、rob\\u value)相关的帖子。变量数据为$beddrooms、$bathroms,&;rob,我对join和like结构有些困惑。未工作元查询如下

$args = array(
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        
        array(
            \'key\' => \'beds_value\',
            \'value\' => $bedrooms,
            \'compare\' => \'=\'  
        ),
        array(
            \'key\' => \'baths_value\',
            \'value\' => $bathrooms,
            \'compare\' => \'=\'    
        ),
        array(
            \'key\' => \'rob_value\',
            \'value\' => $rob,
            \'compare\' => \'=\'    
        ),          
    ),
);
    
$args = array_merge( $args , $wp_query->query ); 
query_posts( $args );
因此,执行SQL wpdb查询更好更简单,我将更改代码。之前的wpdb查询$wpdb->get_results($query, OBJECT); 不允许对结果分页,这就是为什么我尝试更改为meta\\u查询我需要更多的知识!

1 个回复
SO网友:Tom J Nowell

首先,您可以为分页添加以下内容:

\'paged\' => ( get_query_var(\'paged\') ? get_query_var(\'paged\') : 1 )
这样就不需要array\\u合并。否则,除了一些缩进之外,您现有的代码很好。不过,我会添加查询的其余部分,例如定义帖子类型、每页帖子等

结束

相关推荐

$wpdb在插件内的页面上似乎不起作用

我有一个插件文件夹foobar。在这个插件中,我有一个名为foobar的页面。php。在这页里我有global $wpdb; $orderby = (!empty($_REQUEST[\'orderby\'])) ? $_REQUEST[\'orderby\'] : \'name\'; //If no sort, default to title $sql = \"SELECT * FROM wp_nc_location ORDER BY \" .