Php Wordpress存档小部件-自定义html输出

Php Wordpress存档小部件-自定义html输出,php,wordpress,widget,customization,Php,Wordpress,Widget,Customization,看来我仍然反对wordpress。我将小部件“归档”添加到侧边栏,再次,html输出是垃圾,它基本上具有以下结构: <li><a href="somelink">text</a> - (# of posts)</li> -(#职位) 我想把它转换成: <li><a href="somelink">text <small># of posts</small></a> 然而,与插件不

看来我仍然反对wordpress。我将小部件“归档”添加到侧边栏,再次,html输出是垃圾,它基本上具有以下结构:

<li><a href="somelink">text</a> - (# of posts)</li>
  • -(#职位)
  • 我想把它转换成:

    <li><a href="somelink">text <small># of posts</small></a>
    
  • 然而,与插件不同的是,我无法在wordpress社区建议/提到的php页面中找到创建html输出的行,即functions.php、widgets.php和default-widgets.php

    我在谷歌上搜索了关于这个问题的所有可能的关键词组合,但我找不到相关的东西

    谢谢你的帮助

    问候


    G.Campos

    查看general-template.php。两个函数wp_get_archives和get_archives_link。您必须破解wp_get_归档文件,以更改$text中加载的内容。post计数被加载到$after变量中,该变量位于get_archives_链接的链接外部。与此相反:

    $text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
    if ( $show_post_count )
       $after = '&nbsp;('.$arcresult->posts.')' . $afterafter;
    
    大概是这样的:

    $text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
    if ( $show_post_count )
       $text= $text.'&nbsp;<small>'.$arcresult->posts.'</small>';
    
    $text=sprintf(uuuu(“%1$s%2$d”),$wp\u locale->get\u month($arcsresult->month),$arcsresult->year);
    如果($show\u post\u count)
    $text=$text.'.$arcsresult->posts.';
    
    这只是每月的档案。您必须对年度、每周和每日块进行修改

    编辑:从链接标题中排除
    元素的最简单方法是将其加载到每个块中的单独变量中,然后将其传递到修改后的get\u archives\u链接中。在上面的示例中,在加载$text之后,只需将该值加载到$title中:

    $text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
    $title = $text;
    if ( $show_post_count )
       $text= $text.'&nbsp;<small>'.$arcresult->posts.'</small>';
    $output .= get_archives_link($url, $text, $format, $before, $after, $title);
    
    $text=sprintf(uuuu(“%1$s%2$d”),$wp\u locale->get\u month($arcsresult->month),$arcsresult->year);
    $title=$text;
    如果($show\u post\u count)
    $text=$text.'.$arcsresult->posts.';
    $output.=get_archives_link($url、$text、$format、$before、$after、$title);
    
    然后修改get_archives_链接:

    function get_archives_link($url, $text, $format = 'html', $before = '', $after = '', $title = '') {
        $text = wptexturize($text);
    
        if($title == '')
            $title = $text;
    
        $title_text = esc_attr($title);
        $url = esc_url($url);
    
        if ('link' == $format)
            $link_html = "\t<link rel='archives' title='$title_text' href='$url' />\n";
        elseif ('option' == $format)
            $link_html = "\t<option value='$url'>$before $text $after</option>\n";
        elseif ('html' == $format)
            $link_html = "\t<li>$before<a href='$url' title='$title_text'>$text</a>$after</li>\n";
        else // custom
            $link_html = "\t$before<a href='$url' title='$title_text'>$text</a>$after\n";
    
        $link_html = apply_filters( "get_archives_link", $link_html );
    
        return $link_html;
    }
    
    function get_archives_link($url,$text,$format='html',$before='',$after='',$title=''){
    $text=wptexturize($text);
    如果($title='')
    $title=$text;
    $title\u text=esc\u attr($title);
    $url=esc_url($url);
    如果('link'=$format)
    $link_html=“\t\n”;
    elseif('option'=$format)
    $link_html=“\t$before$text$after\n”;
    elseif('html'=$format)
    $link\u html=“\t
  • $before$after
  • \n”; else//定制 $link_html=“\t$before$after\n”; $link\u html=apply\u过滤器(“get\u archives\u link”,$link\u html); 返回$link_html; }
    将此代码添加到主题functions.php文件中,它会将后期存档计数包装在span标记中。在下面的代码示例中,我将计数包装在span标记中,您可以根据需要添加或修改它

    function wrap_archive_count($links) {
           $links = str_replace('</a>&nbsp;(', '<span class="archive-count">', $links);
           $links = str_replace(')', '</span></a>', $links);
           return $links;
    }
    add_filter('get_archives_link', 'wrap_archive_count');
    
    function wrap\u archive\u count($links){
    $links=str_replace(“(”,“$links”);
    $links=str_replace('),'$links);
    返回$links;
    }
    添加过滤器(“获取存档链接”、“包装存档计数”);
    
    优秀的员工Andrew工作得很好。不过,我只有一个问题。标记正在其标题属性中包含标记。换句话说,如果我把光标放在(链接)上,我不仅会得到相关的信息,比如2011年2月-6篇文章,而且还有标签把事情搞砸了:“2011年2月-6篇文章”。如何删除在's title=”“属性中提到的标签?唯一的“重大”问题是整个黑客攻击的核心部分。在更新过程中,您将丢失所有编辑。目前正在寻找一个过滤器挂钩解决方案(但看起来很黯淡)。我知道这是一个老帖子,但如果我找到什么,我会把它放在这里。