Display Links in Excerpts?

时间:2011-09-07 作者:AndrettiMilas

我对\\u摘录有问题,在任何地方都找不到答案。。。我只是想让链接在通过\\u摘录显示时可以单击!这必须有一个函数,而不是依赖于插件。但是我找不到它,而且高级摘录插件太复杂了,我找不到使它工作的小片段。

4 个回复
最合适的回答,由SO网友:Jeremy Jared 整理而成

您可以使用我在此处找到的脚本:http://aaronrussell.co.uk/legacy/improving-wordpress-the_excerpt/

我对其进行了修改,以在摘录中显示链接,并删除了一些其他功能:

<?php
function keep_my_links($text) {
  global $post;
if ( \'\' == $text ) {
    $text = get_the_content(\'\');
    $text = apply_filters(\'the_content\', $text);
    $text = str_replace(\'\\]\\]\\>\', \']]&gt;\', $text);
    $text = preg_replace(\'@<script[^>]*?>.*?</script>@si\', \'\', $text);
    $text = strip_tags($text, \'<a>\');
  }
  return $text;
}
remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\');
add_filter(\'get_the_excerpt\', \'keep_my_links\');
?>
修复它的部分是$text = strip_tags($text, \'<a>\');. 随着remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\');

SO网友:Brad Dalton

代码基本上允许在您的摘录中使用逗号分隔的HTML标记列表,这些摘录通常由WordPress剥离。在Genesis和works上测试。

 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>\'; 
}
来源:http://daan.kortenba.ch/add-tags-to-genesis-content-limit-in-content-archives/

SO网友:user3162185

您可以使用以下插件在摘录中允许链接和其他html标记

插件:Show links in excerpts wordpress

我与插件没有任何关联

SO网友:Greg Perham

WordPress在中删除标记wp_trim_words(), 调用的get_the_excerpt(); 因此,我们必须过滤“wp\\u trim\\u words”,基本上只需一个更改即可复制该函数:replacewp_strip_all_tags() 具有strip_tags().

我们不希望其他函数运行wp_trim_words 要修改,所以我们在get_the_excerpt() 正在运行,完成后将其删除。

// Allow links in excerpts
function sg_trim_words( $text, $num_words, $more, $original_text ) {
    $text = strip_tags( $original_text, \'\' );
    // @See wp_trim_words in wp-includes/formatting.php
    if ( strpos( _x( \'words\', \'Word count type. Do not translate!\' ), \'characters\' ) === 0 && preg_match( \'/^utf\\-?8$/i\', get_option( \'blog_charset\' ) ) ) {
        $text = trim( preg_replace( "/[\\n\\r\\t ]+/", \' \', $text ), \' \' );
        preg_match_all( \'/./u\', $text, $words_array );
        $words_array = array_slice( $words_array[0], 0, $num_words + 1 );
        $sep = \'\';
    } else {
        $words_array = preg_split( "/[\\n\\r\\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY );
        $sep = \' \';
    }
    if ( count( $words_array ) > $num_words ) {
        array_pop( $words_array );
        $text = implode( $sep, $words_array );
        $text = $text . $more;
    } else {
        $text = implode( $sep, $words_array );
    }
    // Remove self so we don\'t affect other functions that use wp_trim_words
    remove_filter( \'wp_trim_words\', \'sg_trim_words\' );
    return $text;
}
// Be sneaky: add our wp_trim_words filter during excerpt_more filter, which is called immediately prior
function sg_add_trim_words_filter( $excerpt_length ) {
    add_filter( \'wp_trim_words\', \'sg_trim_words\', 10, 4 );
    return $excerpt_length;
}
add_filter( \'excerpt_more\', \'sg_add_trim_words_filter\', 1 );
我写道this gist 在回顾了其他建议的方法之后,因为我认为这是一个更有针对性的解决方案。今后将更新要点。

结束

相关推荐

Static Front-Page Excerpts

在一个新网站上工作,我试图将最近的帖子摘录植入静态首页。我一直在做wordpress之外的所有静态内容(作为静态文件),但可以说,我确信要将所有内容都纳入WP范围。在用作主页的外部静态文件中,我已经找到了如何包含博客标题的方法<?php require(\'../wordpress/wp-blog-header.php\'); ?> 然后在该页面上调出帖子,效果很好:<?php $count = 0;