zoukankan      html  css  js  c++  java
  • 让wordpress标签云显示文章数的正确方法

    先看一下效果

    在百度经验找到一个教程,可惜,根据实践发现方法是错误的,
    百度经验上的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //标签tag所包含的文章数量
    function Tagno($text) {
    $text = preg_replace_callback('|<a>|i', 'tagnoCallback', $text);
    return $text;
    }
    function tagnoCallback($matches) {
    $text=$matches[1];
    preg_match('|title=(.+?)style|i',$text ,$a);
    preg_match("/[0-9]/",$a[1],$a);
    return "<a ".$text ."[".$a[0]."]";
    }
    add_filter('wp_tag_cloud', 'Tagno', 1);

    加到function.php后,文章数输出倒是能够输出,但页面会发生错误,通过查看源代码可以发现,它的<a>标签都没有封闭,也就是缺少</a>,所以标签云以下的某些部分会出错。
    另外,它这个只能正常输出含个位数文章的数量,如果是十位以上,它只会输出文章数的第一位,比如“10篇文章”,它只会输出“[1]”。原因是正则表达式错误,/[0-9]/只会匹配数字一次,应使用/[0-9]+/来匹配所有的数字。
    修改后的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //标签tag所包含的文章数量
    function Tagno($text) {
        $text = preg_replace_callback('|<a (.+?)</a>|i', 'tagnoCallback', $text);
        return $text;
    }
    function tagnoCallback($matches) {
        $text=$matches[1];
        preg_match('|title=(.+?)style|i',$text ,$a);
        preg_match("/[0-9]+/",$a[0],$b);
        return "<a ".$text ."<span>[".$b[0]."]</span></a>";
    }
    add_filter('wp_tag_cloud', 'Tagno', 1);

    代码里将输出的数字加入到标签里,可以细调数字的格式。
    本文转载自:http://idlelife.org/archives/404

  • 相关阅读:
    在Centos 7下编译openwrt+njit-client
    开博随笔
    Chapter 6. Statements
    Chapter 4. Arrays and Pointers
    Chapter 3. Library Types
    Chapter 2.  Variables and Basic Types
    关于stm32不常用的中断,如何添加, 比如timer10 timer11等
    keil 报错 expected an identifier
    案例分析 串口的地不要接到电源上 会烧掉
    案例分析 CAN OPEN 调试记录 进度
  • 原文地址:https://www.cnblogs.com/shenjieblog/p/5061072.html
Copyright © 2011-2022 走看看