在我的WordPress网站上,我正在开发一个新颖写作术语的词汇表列表,使用标记和标记描述来提取定义。目前,当任何标签关联的帖子超过0篇时,它将链接到该标签的存档页面,允许读者进一步阅读该主题。
我想实现的是,让任何一个标签正好有一篇文章与其关联,直接链接到该文章,而不是标签存档。我一直在寻找解决方案,但似乎找不到任何方法来实现这一点。
任何帮助都将不胜感激!
作为参考,这是当前代码:
<!-- Add glossary list in content -->
<?php foreach ( $groups as $group ): ?>
<ul>
<div class="glossary-title-link" id ="section-<?php echo str_replace(\' \', \'-\', strtolower($group[\'name\'])) ?>">
<h4 id ="<?php echo $group[\'name\'] ?>"><?php echo $group[\'name\'] ?></h4>
</div>
<?php foreach ( $group[\'tags\'] as $tag ): ?>
<li class="glossary-list">
<!-- If there are any posts for the tag, link to the tag page -->
<?php
if ( $tag[\'count\'] > 0 ) {
echo \'<a class="glossary-link" id="term-\';
echo str_replace(\' \', \'-\', strtolower($tag[\'name\']));
echo \'" href="\';
echo $tag[\'link\'];
echo \'">\';
echo $tag[\'name\'];
echo \'</a></br>\';
} else {
echo \'<div class="glossary-link" id="term-\';
echo str_replace(\' \', \'-\', strtolower($tag[\'name\']));
echo \'">\';
echo $tag[\'name\'];
echo \'</div>\';
}
?>
<?php echo $tag[\'description\'] ?></li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
这就导致了“悬崖勒马”的联系,而“结局”则不是:
最合适的回答,由SO网友:Andrea Somovigo 整理而成
尝试以下操作(未测试,当然假设$tag是正确的对象标记,$tag[\'count\']是使用该标记的帖子数):
if ( $tag[\'count\'] > 1 ) {
//first part of your code
}
else if($tag[\'count\'] == 1){
$the_query = new WP_Query( \'tag=\'.$tag[\'name\'] );
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo \'<a href="\';
echo get_the_permalink();
echo \'">\';
echo $tag[\'slug\'];
echo \'</a></br>\';
}
}
wp_reset_query();
}
else{
//// last part of your code
}