(Wordpress 4.3.1)
我正在运行一个自定义循环,只想包含将文件上载到自定义字段的帖子:audio\\u file。
我在网络上尝试了许多解决方案,但迄今为止没有任何效果。
我可以使用meta\\u query检查键是否有值吗?
以下是我当前的尝试:
global $post;
$args = array(
\'post_type\' => array (
\'podcast\',
\'event\',
),
\'posts_per_page\' => 10,
\'post_status\' => \'publish\',
\'paged\' => get_query_var( \'paged\' ),
\'meta_query\' => array (
\'key\' => \'audio_file\',
\'value\' => \'\' ,
\'compare\' => \'!=\',
//\'type\' => \'date\',
),
);
global $wp_query;
$wp_query = new WP_Query( $args );
if ( have_posts() ) { while ( have_posts() ) { the_post();
此处的预期结果是显示“audio\\u file”不为空的帖子。
谢谢(Wordpress 4.3.1)
最合适的回答,由SO网友:AJD 整理而成
我想出来了,meta\\u查询必须是一个数组within 用于使用“关系”进行高级查询的数组。
meta_query => array (
array (
//\'relation\' => \'OR\',
\'key\' => \'audio_file\', //The field to check.
\'value\' => \'\', //The value of the field.
\'compare\' => \'!=\', //Conditional statement used on the value.
),
),
条件“!=”如果文件已上载,“不等于”(null)则返回true。
SO网友:Timo L
这可能对某人有所帮助。这将查找元值(如果存在且不为空)。
\'meta_query\' => [
\'relation\' => \'AND\',
[
\'key\' => \'your_key\',
\'compare\' => \'EXISTS\',
],
// Don\'t want empty values
[
\'key\' => \'your_key\',
\'value\' => \'\',
\'compare\' => \'!=\',
],
],
SO网友:Showhan Ahmed
看来type现在,价值观至关重要。如果不使用类型,我无法使元查询正常工作。值得注意的是,在检查值是否存在时。
此代码现在不起作用。
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'meta_key\',
\'value\' => \'\',
\'compare\' => \'!=\',
),
),
这个有效。
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'meta_key\',
\'value\' => \'\',
\'compare\' => \'!=\',
\'type\' => \'NUMERIC\'
),
),
唯一的区别是
type。