摘录继续剥离<a>标记

时间:2014-02-15 作者:Pieter Goosen

我有以下功能来显示我的摘录

  <?php function pietergoosen_custom_wp_trim_excerpt($text) {
global $post;
$raw_excerpt = $text;
if ( \'\' == $text ) {
    $text = get_the_content(\'\');

    $text = strip_shortcodes( $text );

    $text = apply_filters(\'the_content\', $text);
    $text = str_replace(\']]>\', \']]&gt;\', $text);

    //Add the allowed HTML tags separated by a comma.
    $allowed_tags = \'<p>,<a>,<em>,<strong>,<img src />,<audio><video>\';  
    $text = strip_tags($text, $allowed_tags);

    //Change the excerpt word count.
    $excerpt_word_count = 105; 
    $excerpt_length = apply_filters(\'excerpt_length\', $excerpt_word_count); 

    //Change the excerpt ending.
    $excerpt_end = \' <a href="\'. esc_url( get_permalink() ) . \'">\' . \'&hellip;\' . __( \'Read more about this article <span class="meta-nav">&rarr;</span>\', \'pietergoosen\' ) . \'</a>\'; 
    $excerpt_more = apply_filters(\'excerpt_more\', \' \' . $excerpt_end);

    $words = preg_split("/[\\n\\r\\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
    if ( count($words) > $excerpt_length ) {
        array_pop($words);
        $text = implode(\' \', $words);
        $text = $text . $excerpt_more;
    } else {
        $text = implode(\' \', $words);
    }
}
    return apply_filters(\'wp_trim_excerpt\', $text, $raw_excerpt);
}

remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\');
add_filter(\'get_the_excerpt\', \'pietergoosen_custom_wp_trim_excerpt\'); ?>
我的问题是<a> 标签仍然会被剥离。我举了几个例子,都建议添加<a> 标记到$allowed_tags, 但即使这样也不能解决问题。有什么建议吗?

1 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

add_filter( \'get_the_content_limit_allowedtags\', \'get_the_content_limit_custom_allowedtags\' );

function get_the_content_limit_custom_allowedtags() {
// Add custom tags to this string
return \'<script>,<style>,<br>,<em>,<i>,<ul>,<ol>,<li>,<a>\'; 
}
您还可以将此代码添加到函数文件中,并自定义要在摘录中允许的标记。

结束

相关推荐

用于IE8的html5shiv的Genesis加载

Genesis Framework 2内置了对加载html5shiv的支持。js,使用genesis\\uhtml5\\uie\\ufix函数(/lib/js/load scripts.php)我将函数发布在下面。它应该在文档的头部打印一条条件注释,目标是IE 8及更低版本用任何其他浏览器加载网站时,注释存在于文档的头部。当我尝试用IE8加载它时,整个额外的块都消失了,因此IE8无法理解HTML5标记。如果我删除了条件注释,只保留了脚本标记,那么它可以正常工作,但额外的脚本正在为所有浏览器下载。看起来IE