• wordpress CMS主题:ssmay主题wordpress CMS主题:ssmay主题
  • 首页 > wordpress CMS主题制作 > wrodpress主题:怎样显示同一分类的tag标签

    wrodpress主题:怎样显示同一分类的tag标签

    作者: 分类:wordpress CMS主题制作 点击: 2,158 次
    wordpress CMS主题:ssmay主题

      tag标签是wordpress程序所特有的一个标签,深受搜索引擎的喜爱。前面,我们介绍了tag标签云函数wp_tag_cloud(),它是wordpress程序的内置函数,给wordpress主题开发者极大的方便,而且功能非常强大,具体,你可以参阅“wordpress常用函数详解14:wp_tag_cloud()函数”。但是,它也有它办不到的地方,比如本文——显示同一分类的tag标签,wp_tag_cloud()函数就不好办到。

      那么,怎样显示同一分类的tag标签呢?一起来看看吧。

      首先,在主题的functions.php文件中添加如下代码:

      //获取分类标签
      function ludou_get_category_tags($args) {
      global $wpdb;
      $tags = $wpdb->get_results
      ("
      SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name
      FROM
      $wpdb->posts as p1
      LEFT JOIN $wpdb->term_relationships as r1 ON p1.ID = r1.object_ID
      LEFT JOIN $wpdb->term_taxonomy as t1 ON r1.term_taxonomy_id = t1.term_taxonomy_id
      LEFT JOIN $wpdb->terms as terms1 ON t1.term_id = terms1.term_id,

      $wpdb->posts as p2
      LEFT JOIN $wpdb->term_relationships as r2 ON p2.ID = r2.object_ID
      LEFT JOIN $wpdb->term_taxonomy as t2 ON r2.term_taxonomy_id = t2.term_taxonomy_id
      LEFT JOIN $wpdb->terms as terms2 ON t2.term_id = terms2.term_id
      WHERE
      t1.taxonomy = 'category' AND p1.post_status = 'publish' AND terms1.term_id IN (".$args['categories'].") AND
      t2.taxonomy = 'post_tag' AND p2.post_status = 'publish'
      AND p1.ID = p2.ID
      ORDER by tag_name
      ");
      $count = 0;

      if($tags) {
      foreach ($tags as $tag) {
      $mytag[$count] = get_term_by('id', $tag->tag_id, 'post_tag');
      $count++;
      }
      }
      else {
      $mytag = NULL;
      }

      return $mytag;
      }

      上面这段代码,是我们算定义的获取同分类下tag标签函数。然后,我们在显示分类tag标签的地方添加这个函数来调用。代码如下:

      $args = array( 'categories' => '12,13'); // 12,13是分类ID,多个用半角逗号隔开

      $tags = ludou_get_category_tags($args);// 调用上面定义的函数,来获取ID为12,13的分类的关联标签

      // 输出我们获取到的关联标签,以列表形式打印
      $content .= "<ul>";

      if(!empty($tags)) {
      foreach ($tags as $tag) {
      $content .= "<li><a href=\"".get_tag_link($tag->term_id)."\">".$tag->name."</a></li>";
      }
      }

      $content .= "</ul>";
      echo $content;

      这样一来,我们就可以在需要显示的地方显示分类ID为12和13的标签云了。当然,这里是直接添加了分类ID,你可以通过添加后台设置代码,在后台灵活地添加分类ID,那样会更方便,这个,大家自己研究一下,这里就不多说了。



      QQ二维码

    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201505264106.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    This site uses Akismet to reduce spam. Learn how your comment data is processed.