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

  • 相关阅读:
    spacy 语言包离线安装
    linux 进程通信
    UNIX网络编程5 POSIX 消息队列
    UNIX网络编程 12 15共享内存区
    高级UNIX环境编程13 守护进程
    高级UNIX环境编程11 线程
    高级UNIX环境编程10 信号
    高级UNIX环境编程7 进程
    高级UNIX环境编程5 标准IO库
    高级UNIX环境编程4 文件和目录
  • 原文地址:https://www.cnblogs.com/shenjieblog/p/5061072.html
Copyright © 2011-2022 走看看