我有这段代码来显示当前类别中使用的标签,包括子类别:
if (is_category( )) {
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
}
query_posts('category_name='.$yourcat->slug.'');
if (have_posts()) : while (have_posts()) : the_post();
if( get_the_tag_list() ){
echo $posttags = get_the_tag_list('<li>','</li><li>','</li>');
}
endwhile; endif;
wp_reset_query();
是否可以删除重复的标签?现在,代码多次显示一些标签,而不是一次。
关于此代码的另一个问题:如何输出这样的每个标签以创建复选框表单?
<input type="radio" name="tag" value="tag1" <?php if((isset($_GET["tag"])) && $_GET["tag"] == "tag1") { echo "checked";}?>> Tag1<br>
希望有人可以帮助我。提前谢谢!
更新
我忘了提到我在输入字段的末尾使用代码if((isset($_GET["tag"])) && $_GET["tag"] == "tag1") { echo "checked";}
来检查使用标记时的复选框,但如果我使用该代码(在html中工作),则页面无法正常显示
答案 0 :(得分:1)
我已经修改了一下你的代码,但是现在你有一个标记id的数组,你可以将它用于任何目的,例如。列表在下面添加。
if (is_category()){
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
}
$tag_IDs = array();
query_posts('category_name='.$yourcat->slug);
if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags):
foreach($posttags as $tag) {
if (!in_array($tag->term_id , $tag_IDs)):
$tag_IDs[] = $tag->term_id;
$tag_names[$tag->term_id] = $tag->name;
endif;
}
endif;
endwhile; endif;
wp_reset_query();
echo "<ul>";
foreach($tag_IDs as $tag_ID){
echo '<a href="'.get_tag_link($tag_ID).'">'.$tag_names[$tag_ID].'</a>';
}
echo "</ul>";