我需要将一个类应用于WordPress'get_archive_links
函数输出的post存档链接。我可以通过修改/wp-includes/general-template.php (line 842)
来完成此操作:
$link_html = "\t<li>$before<a href='$url' title='$title_text'>$text</a>$after</li>\n";
到此:
$link_html = "\t<li>$before<a class='hello' href='$url' title='$title_text'>$text</a>$after</li>\n";
我很确定我需要在我的主题的functions.php中添加某种过滤器以智能方式实现这一点,而无需修改核心文件,我只是不知道如何。任何指导都很棒。
编辑:这是来自general-template.php的整个未经修改的函数:
function get_archives_link($url, $text, $format = 'html', $before = '', $after = '') {
$text = wptexturize($text);
$title_text = esc_attr($text);
$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;
}
答案 0 :(得分:1)
所以我想出了如何做到这一点,感谢this page。
将其放入functions.php
:
// Filter to add nofollow attribute
function nofollow_archives($link_html) {
return str_replace('<a href=', '<a rel="nofollow" href=', $link_html);
}
然后在任何地方调用新功能:
<?php add_filter('get_archives_link', 'nofollow_archives'); ?>
<?php wp_get_archives('type=monthly'); ?>
该示例显然显示了如何添加nofollow rel标记,但您可以轻松修改它以添加链接类或其他任何内容。
答案 1 :(得分:0)
这样的事情怎么样?
function new_get_archives_link ( $link_html ) {
if ('html' == $format) {
$link_html = "\t<li>$before<a class='hello' href='$url' title='$title_text'>$text</a>$after</li>\n";
}
return $link_html;
}
add_filter("get_archives_link", "new_get_archives_link");
将其复制到您的functions.php中,您不必编辑核心文件。
未测试..