wordpress CMS主题 微信
  • 全部教程
  • Home > wordpress CMS主题制作 > wrodpress主题:怎样显示同一分类的tag标签

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

    高时银博客 wordpress CMS主题制作 点击: 1,158 次 0 0

    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,那样会更方便,这个,大家自己研究一下,这里就不多说了。


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

    目前还没有评论。赶快来坐沙发吧。

    发表评论