无法在同一查询中显示多个帖子类型(WPML WP_QUERY)

时间:2012-05-21 作者:Rich

我相信对此有一些非常简单的解释,但我被卡住了。我只是想在一个网站的首页上放一个漂亮、简单的“最近的帖子”元素,出于某种原因,当我尝试使用:

$args = array( 
    \'post_type\' => array(\'post\',\'recipes\'), 
    \'posts_per_page\' => 4
);
query_posts( $args );
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    ...

endwhile; 
wp_reset_postdata(); 
它不会显示食谱。奇怪的是,如果我调用“post”和“page”,它会同时显示这两种类型,但只要添加“recipes”,它就会显示请求的第一种类型,而不是recipes。我是不是错过了一些简单的东西?

编辑:

更新了WP\\u Query instance而不是Query\\u posts,仍然不起作用。

$argz= array(
\'post_type\' => array(\'post\',\'recipes\'), 
\'posts_per_page\' => 4
);

$my_query = new WP_Query($argz);
还是不行。仍然返回正确的查询变量和所有内容,但不会同时显示这两种帖子类型。

4 个回复
SO网友:Michael Cox

我在使用WP\\u Query查询两种自定义帖子类型时遇到了这个问题。在数组中查询一种类型或另一种类型没有问题,但不能同时查询这两种类型。

不起作用:

$args = array( 
    \'post_type\' => array(\'custom_type_1\',\'custom_type_2\'), 
    \'posts_per_page\' => 4
);
确实有效:

$args = array( 
    \'post_type\' => array(\'custom_type_1\'), 
    \'posts_per_page\' => 4
);
确实有效:

$args = array( 
    \'post_type\' => array(\'custom_type_2\'), 
    \'posts_per_page\' => 4
);
至少可以说是非常令人困惑的。

通过确保两种自定义帖子类型都具有WPML的“使自定义帖子类型名称可翻译”复选框,解决了此问题。如果您试图查询两种帖子类型,其中一种是可翻译的,另一种是不可翻译的,那么WPML一定不会喜欢它。

(我在WordPress 3.4.1和WPML 2.5.2上-最新发布日期)

SO网友:Chris_O

不要对二次循环使用query\\u post
这只是一般的“最佳做法”建议,而不是问题的原因\'public\' => true

$post_types = get_post_types( array( \'_builtin\' => false ), \'object\' ); foreach ( $post_types as $post_type ) { var_dump( $post_type ); }

SO网友:Rich

哇!不确定确切的罪魁祸首是什么(将进一步挖掘),但似乎WPML的某些方面阻止了实际的SQL查询请求与标准帖子和页面相结合的自定义帖子类型。当我禁用WPML时,它工作了。谢谢大家的帮助,一旦我对发生的事情有了更具体的了解,我会继续关注这个问题

SO网友:Rune

这可以查询多个职位类型:

query_posts(\'post_type[]=post&post_type[]=page&post_type[]=event\');
您甚至可以直接在浏览器中进行测试,

example.com/?post_type[]=post&post_type[]=page

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post