如何从GET_POSTS给出的POST数组访问$wp_Query对象?

时间:2015-01-24 作者:certainlyakey

我有一个简单的自定义查询get_posts:

<ul>
<?php 
$args = array(\'post_type\' => \'event\', \'numberposts\' => 6 );
$myposts = get_posts( $args );
foreach( $myposts as $post ) :  setup_postdata($post); 
    echo \'<li><a href="\' . get_permalink() . \'">\' . get_the_title() . \'</a></li>\';
endforeach;
wp_reset_postdata();
?>
</ul>
但是,需要访问此自定义循环的查询对象,如果使用new WP_Query 方法(这是获得其他CPT的连接岗位所必需的,该机制由优秀的Posts2Posts 插件的each_connected.) 是否可以从get_posts? 或者唯一的方法是在new WP_Query 风格

2 个回复
最合适的回答,由SO网友:tao 整理而成

您可以使用筛选任何WP查询pre_get_posts(). (有时)棘手的部分是,它是针对WP的所有查询运行的,因此您需要使用WP条件精确定位查询(is_admin(), is_page(), is_archive(), 等等……)。

在这一页上你也会找到一些有用的例子。

SO网友:bonger

是的,我认为唯一的方法是(参见Andrei Ghorghiu的回答)如果你选择重做循环,稍微棘手的一点是$args 数组与相同get_posts()\'s默认值:

$args = array(
    \'post_type\' => \'event\', \'posts_per_page\' => 6,
    \'post_status\' => \'publish\', // If post_type \'attachment\' then \'post_status\' => \'inherit\'
    \'orderby\' => \'date\', \'order\' => \'DESC\',
    \'suppress_filters\' => true,
    \'ignore_sticky_posts\' => true, \'no_found_rows\' => true,
);
$query = new WP_Query;
$myposts = $query->query( $args );

结束

相关推荐

Custom taxonomy template loop

我知道这个问题问得很多,但我找不到一个适合我的答案。我制作了一些自定义帖子类型和一些自定义分类法。我有自定义的帖子类型Products 并与分类法相联系Product Categories. 当用户在产品页面上单击产品类别时,我想向他显示该特定类别中的所有产品。问题是,产品类别将约为50种。现在我发现的唯一一件事就是把这个<?php $loop = new WP_Query( array( \'post_type\' => \'all_products\', \'posts_per_page\