仅显示带有特定标签的帖子

时间:2013-03-30 作者:Joe Bobby

我试图只显示带有标签的帖子Movie TrailersGaming Trailers 但我的循环仍然显示类别/视频下的所有内容/

这是我的

分类视频。php:

<?php if ( have_posts() ) : ?>
<?php  ?>
<?php add_action( \'pre_get_posts\', \'display_gaming_trailers\' ); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
get_template_part( \'content-videos\', get_post_format() );
?>
<?php endwhile; ?>
<?php else : ?>
<?php get_template_part( \'no-results\', \'index\' ); ?>
<?php endif; ?>
在函数中。php我有:

//Display Movie Trailers
function display_movie_trailers( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'tag\', \'movie trailers\' );
    }
}
add_action( \'pre_get_posts\', \'display_movie-trailers\' );

//Display Gaming Trailers
function display_gaming_trailers( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'tag\', \'gaming trailers\' );
    }
}
add_action( \'pre_get_posts\', \'display_gaming-trailers\' );
我在functions.php 并使用您建议的代码对其进行了更正,但循环中没有显示任何内容。类别为videos 所以我现在有:

//Display Gaming Trailers
function display_gaming_trailers( $query ) {
    if ( $query->is_category() && $query->query_vars[\'category_name\'] == \'videos\') {
        $query->set( \'tag\', \'gaming trailers\' );
    }
}
add_action( \'pre_get_posts\', \'display_gaming_trailers\' );
Edit: 我试过了gaming trailers and the slug游戏预告片`没有任何运气。。有什么能阻止它工作的吗?

1 个回复
最合适的回答,由SO网友:Manny Fleurmond 整理而成

在模板中add_action 你已经太迟了,因为当WordPress到达你的模板时,查询已经完成了。

如果这是一个分类页面,我会在你的functions.php:

//Display Gaming Trailers
function display_gaming_trailers( $query ) {
    if ( $query->is_category() && $query->query_vars[\'category_name\'] == \'video\') {
        $query->set( \'tag\', \'gaming-trailers\' );
    }
}
add_action( \'pre_get_posts\', \'display_gaming_trailers\' );

结束

相关推荐

H1 tags for header image?

在里面heading.php 叶主题的代码如下: <?php $header_image = get_header_image(); if ( ! empty( $header_image ) ) { ?> <a href=\"<?php echo esc_url( home_url( \'/\' ) ); ?>\" title=\"<?php echo esc_attr( get_bloginfo( \'name\', \