直接链接到档案中的第一篇帖子

时间:2018-07-23 作者:Segia

在我的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; ?>
这就导致了“悬崖勒马”的联系,而“结局”则不是:

1 个回复
最合适的回答,由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
}

结束

相关推荐

No duplicate tags by category

我有脚本显示类别中的列表标签,效果很好。<ul class=\"inline-list\"> <?php query_posts(\'category_name=lain-lain\'); if (have_posts()) : while (have_posts()) : the_post(); if( get_the_tag_