我真的很挣扎,我确信这是一个简单的问题。我似乎无法获得属于某个标签的帖子显示在该标签页面上,即:(/ tag / blog /)博客是标签。
到目前为止,在Wordpress的Official Tag Templates页面之后,我仍然无法使其正常运行。
我不需要heirarchy所以tag.php工作正常。使用single_tag_title()
,它会正确显示页面顶部的标记。
Official Tag Templates的其余部分并没有真正提供更多细节,我可以使用默认循环或自定义循环。我已尝试使用如下所示的自定义,但这不起作用。 (我把它保持在最低限度,目前还不担心造型。)
<?php get_header(); ?>
<p>Tag: <?php single_tag_title(); ?></p>
<div class="container">
<div id="content" class="clearfix row">
<div id="main" class="col col-lg-8 clearfix blog-page-padding" role="main">
<?php
if ( have_posts() ) :
while ( have_posts() ) :
the_title();
endwhile; // end while
endif; // end if
?>
</div> <!-- end #main -->
<?php get_sidebar('blog'); // Blog ?>
</div> <!-- end #content -->
</div>
<?php get_footer(); ?>
所以这段代码目前确实显示了标签的标题,但没有显示我想要发布的帖子的标题。
提出问题。 “我如何显示属于特定标签的帖子。”
答案 0 :(得分:0)
你并没有告诉循环在任何地方寻找那个特定的标签......你所做的只是在页面顶部显示当前选定的标签。在您的循环中添加PHP if
语句以获取具有该标记的帖子:
<?php get_header(); ?> // Get the header
<p>Tag: <?php single_tag_title(); ?></p> // Display the tag name
<div class="container">
<div id="content" class="clearfix row">
<div id="main" class="col col-lg-8 clearfix blog-page-padding" role="main">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> // Start your loop
<?php if(tag_slug( ' THE SLUG ' ) ) : ?> // Look for the tag
// Post HTML stuff
<?php endif; ?>
<?php endwhile; endif ?> // finish the loop
</div> <!-- end #main -->
<?php get_sidebar('blog'); // Blog ?>
</div> <!-- end #content -->
</div>
<?php get_footer(); ?>
This page from the Codex提供了如何抓取类别和标签的示例。
答案 1 :(得分:0)
你只需要the_post()
函数,你必须在while内部调用它,它应该是你调用的第一个函数,因为它会加载模板标记。
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title();
endwhile; // end while
endif; // end if
?>
如果标签只是在自定义帖子类型中使用,你应该向你添加这样的函数.php:
add_action( 'pre_get_posts', 'custom_function' );
function custom_function($query){
if(! is_admin()){
if(is_tag()){
$query->set('post_type', array('your_post_type', 'your_other_post_type', 'post'));
}
}
}
答案 2 :(得分:0)
我发现由于是自定义帖子类型,我不得不使用WP Query循环来引入它们。
<?php if ( is_tag() ) {$term_id = get_query_var('tag_id'); $taxonomy = 'post_tag'; $args ='include=' . $term_id; $terms = get_terms( $taxonomy, $args );} ?>
<!-- This gets the tags slug -->
<?php $query = new WP_Query(array( "post_type" => array('blog', 'portfolio'), "tag" => $terms[0]->slug ) ); while ($query->have_posts()) : $query->the_post(); ?>
<?php the_title(); ?>
<?php endwhile; ?>