首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress Archives Widget -自定义html输出

Wordpress Archives Widget -自定义html输出
EN

Stack Overflow用户
提问于 2011-02-16 05:05:43
回答 2查看 6.9K关注 0票数 3

看起来,我仍然对wordpress感兴趣。我将小工具'Archives‘添加到我的侧边栏,再一次,html输出是垃圾,它基本上是这样的结构:

代码语言:javascript
复制
<li><a href="somelink">text</a> - (# of posts)</li>

我想把它转换成:

代码语言:javascript
复制
<li><a href="somelink">text <small># of posts</small></a>

然而,与插件不同的是,我无法在wordpress社区建议/提到的php页面中找到创建html输出的行,即functions.php、widgets.php和default-widgets.php

我已经在谷歌上搜索了所有可能的关键字组合,但我无法找到相关的东西。

感谢所有的帮助。

问候

G.Campos

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-16 08:26:03

查看general-template.php。两个函数wp_get_archives和get_archives_link。要更改加载到$text中的内容,您必须破解wp_get_archives。帖子计数被加载到$after变量中,该变量位于get_archives_link中链接的外部。而不是这样:

代码语言:javascript
复制
$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
if ( $show_post_count )
   $after = '&nbsp;('.$arcresult->posts.')' . $afterafter;

如下所示:

代码语言:javascript
复制
$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>';

那只是一个月的档案。您必须对Yearly、Weekly和Daily块进行修改。

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

代码语言:javascript
复制
$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);

然后修改get_archives_link:

代码语言:javascript
复制
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;
}
票数 2
EN

Stack Overflow用户

发布于 2018-06-20 15:21:47

将此代码添加到您的主题跨度functions.php文件中,它会将post归档计数包装在标签中。在下面的代码示例中,我将计数包装在span标签中,您可以根据需要添加或修改它。

代码语言:javascript
复制
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');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5009488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档