元查询没有显示任何结果吗?

时间:2011-02-24 作者:erichmond

我正在尝试显示自定义字段的结果,该字段在自定义帖子类型上不是空的,但没有得到任何结果?

                    <?php

                        if (have_posts()) :
                            $args = array(
                                \'post_type\' => \'programmes\',
                                \'meta_query\' => array(
                                        \'key\' => \'linktovideocatchup\',
                                        \'value\' => \'\',
                                        \'compare\' => \'NOT LIKE\'),
                                //\'caller_get_posts\' => 1,                              
                                );
                        ?>

                        <?php query_posts( $args ); ?>


                        <?php while (have_posts()) : the_post(); ?> `enter code here`

3 个回复
最合适的回答,由SO网友:Simon Blackbourn 整理而成

meta\\u查询元素中缺少一个数组:

$args = array(
           \'post_type\' => \'programmes\',
           \'meta_query\' => array(
                              array(
                                   \'key\'     => \'linktovideocatchup\',
                                   \'value\'   => \'\',
                                   \'compare\' => \'NOT LIKE\'
                                   )
                              )
            );
(这是允许查询多个元字段所必需的。)

meta\\u query数组元素后面还有一个多余的逗号,这可能会导致问题。

我认为您还应该能够使用运算符“<;>”我认为这比“不喜欢”更有效率。

这里有一篇关于meta\\u查询功能的文章:http://scribu.net/wordpress/advanced-metadata-queries.html

SO网友:robalan

有一个更好的答案How can I show posts only if meta_value is not empty - 无法像这样查询空值。

SO网友:user26184

请尝试以下代码:

$args = array(
       \'post_type\' => \'programmes\',
       \'meta_query\' => array(
                          array(
                               \'key\'     => \'linktovideocatchup\',
                               \'value\'   => \'\',
                               \'compare\' => \'!=\'
                               )
                          )
        );
只需将“NOT LIKE”改为“!=”。它对我有用;)

结束

相关推荐