Wordpress标签指定类别

时间:2015-12-04 06:48:30

标签: php wordpress

我希望显示标签来指定类别。我的代码是:

<?php $categories = get_categories('post_type=post');  ?>
<?php foreach ($categories as $category) : ?>

<?php  
        $project_query = query_posts('cat='.$category->term_id.'');
        while (have_posts()) : the_post();
            $posttags = get_the_tags();
            if ($posttags) {
                foreach($posttags as $tag) {
                    $all_tags_arr[] = $tag -> name; 
                }
            }
        endwhile;
    ?><?php echo $category->term_id; ?>
    <?php if ( is_array($all_tags_arr) && count($all_tags_arr) > 0 ): ?>
<?php
    $tags_arr = array_unique($all_tags_arr); 
    foreach( $tags_arr as $tag ):
        $el = get_term_by('name', $tag, 'post_tag');
        $arr[] = '"tag-'.$el->slug.'"';
    ?>
    <span><a href="#<?php echo $el->slug; ?>" id="taglink-tag-<?php echo $el->slug; ?>" rel="tag-<?php echo $el->slug; ?>"><?php echo $el->name; ?></a> </span>
<?php endforeach; endif; ?>

 <?php endforeach; wp_reset_query();  ?>  

当我使用query_posts('cat=22')时, 我遇到query_posts('cat='.$category->term_id.'')无效的问题

这是Wordpress中的错误还是我的代码中的错误?

我在term_id中的其他代码query_post之前使用它时很奇怪,但我需要永久链接中的标记slug名称

$query_args = array(
  'category__in' => $category->term_id ,
  'posts_per_page' => -1
)
$query = new WP_Query( $query_args );

$posttags = "";
while( $query->have_posts() ) {
  $query->the_post();
    if( get_the_tag_list() ){
      $posttags = $posttags . strip_tags(get_the_tag_list('',',',','));

    }
} 

wp_reset_postdata();
$sortedtags = explode(',', $posttags);
asort($sortedtags);
$sortedtags = array_unique($sortedtags);
$sortedtags = array_values( array_filter($sortedtags) );
foreach ($sortedtags as $tagname) {

  echo '<li><a href="'. home_url() .'/number/'. $category->slug .'?tag=' . $tags . '">' . $tagname . '</a></li>';    

}

1 个答案:

答案 0 :(得分:0)

我建议您使用WP_Query类来创建循环,因为使用query_posts函数强烈discouraged。 通过使用WP_Query,您可以轻松使用以下行来获取特定类别或更多内容的帖子。

$query = new WP_Query( array( 'cat' => $category->term_id ) );