我想在默认查询中包括一些帖子。循环开始时:
if ( have_posts() ) :
// Start the Loop.
while ( have_posts() ) : the_post();
默认post类型为
\'post\'
, 因此其他类型的帖子不会进入循环(例如,我有一个自定义的帖子类型,名为
\'news\'
).
我可以使用WP查询对象并执行以下操作:
$type = \'news\';
$args = array (\'post_type\' => $type);
$temp = $wp_query; // assign ordinal query to temp variable for later use
$wp_query = null;
$wp_query = new WP_Query($args);
while ( $wp_query->have_posts() ) : $wp_query->the_post();
这就行了。但是,有没有办法让其他类型的帖子不必担心在任何地方更改循环?
Edit:
我也试过
pre_get_posts
没有成功:
// Load Home Page Posts( reviews and news )
function search_home_posts( $query ) {
if( $query->is_home() && $query->is_main_query() && !is_admin() ) {
$query->set( \'post_type\', array( \'reviews\', \'news\' ) );
}
}
add_action( \'pre_get_posts\', \'search_home_posts\' );
但什么都没做。我尝试了更多的组合,比如
$query->set( \'post_type\', \'reviews\' );
, 但同样的行为。有什么想法吗?