我正在WordPress网站主页上创建一个“精选内容”部分。 我添加了一个函数,允许将标记添加到页面中。
然后,在index.php
我添加了:
<?php $featured_pages = new WP_Query( array(
'post_type' => 'page',
'tag' => 'featured',
'posts_per_page' => 5
));
if ( $featured_pages-> have_posts() ) :
while ( $featured_pages->have_posts() ) : $featured_pages-> the_post();
get_template_part( 'template-parts/content-featured');
endwhile;
endif;
wp_reset_postdata(); ?>
但由于某种原因,post_type
数组的WP_Query
部分无效。
它返回所有post_types。如果我将其更改为'attachment'
,它仍然会返回帖子和页面。
我是WordPress的新手,我在这里错过了一些东西吗?
经过进一步调查后,似乎'tag'会覆盖'post_type'。没有它,它只显示页面。有了它,帖子也包括在内。
答案 0 :(得分:0)
这个问题无法回答,因为我没有意识到这个问题是由我在其他地方添加的功能引起的,我没有在这里添加。
但是,其他人可能认为这很有用,因为我使用的代码主要来自此资源https://www.sitepoint.com/wordpress-pages-use-tags。
我添加了此功能(从其他地方复制并粘贴):
function tags_support_query($wp_query) {
if ($wp_query->get('tag')) $wp_query->set('post_type', 'any');
}
add_action('pre_get_posts', 'tags_support_query');
我认为,如果您使用WP_Query
获取标记,则始终将帖子类型设置为&#39; any&#39;。我认为这不好,所以我删除了它,问题中的代码按预期工作。