显示第一段的自定义摘录(采用HTML格式)

时间:2014-04-23 作者:tomexx

有人能帮我展示帖子的完整第一段,包括所有使用过的标签(无剥离)吗?

我的代码:

function new_excerpt_more() {
  global $post;
  return \'…</p><div class="more-link-wrapper"><a href="\'. get_permalink(get_the_ID()) . \'" class="more-link">\' . \'Read more\' . \'</a></div>\';
}
add_filter(\'excerpt_more\', \'new_excerpt_more\');
它基本上只是关闭摘录段落并添加阅读更多链接。

非常感谢。

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

这里有一个函数,它可以保持HTML标记的灵活性,在摘录的末尾添加一个“阅读更多”链接,并在第一段后修剪摘录。

if ( ! function_exists( \'wpse0001_custom_wp_trim_excerpt\' ) ) : 

    function wpse0001_custom_wp_trim_excerpt($wpse0001_excerpt) {
    global $post;
    $raw_excerpt = $wpse0001_excerpt;
        if ( \'\' == $wpse0001_excerpt ) {

            $wpse0001_excerpt = get_the_content(\'\');
            $wpse0001_excerpt = strip_shortcodes( $wpse0001_excerpt );
            $wpse0001_excerpt = apply_filters(\'the_content\', $wpse0001_excerpt);
            $wpse0001_excerpt = substr( $wpse0001_excerpt, 0, strpos( $wpse0001_excerpt, \'</p>\' ) + 4 );
            $wpse0001_excerpt = str_replace(\']]>\', \']]&gt;\', $wpse0001_excerpt);

            $excerpt_end = \' <a href="\'. esc_url( get_permalink() ) . \'">\' . \'&nbsp;&raquo;&nbsp;\' . sprintf(__( \'Read more about: %s &nbsp;&raquo;\', \'pietergoosen\' ), get_the_title()) . \'</a>\'; 
            $excerpt_more = apply_filters(\'excerpt_more\', \' \' . $excerpt_end); 

            //$pos = strrpos($wpse0001_excerpt, \'</\');
            //if ($pos !== false)
            // Inside last HTML tag
            //$wpse0001_excerpt = substr_replace($wpse0001_excerpt, $excerpt_end, $pos, 0);
            //else
            // After the content
            $wpse0001_excerpt .= $excerpt_end;

            return $wpse0001_excerpt;   

        }
        return apply_filters(\'wpse0001_custom_wp_trim_excerpt\', $wpse0001_excerpt, $raw_excerpt);
    }

endif; 

remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\');
add_filter(\'get_the_excerpt\', \'wpse0001_custom_wp_trim_excerpt\'); 
请注意,“阅读更多”将出现在新段落中,如果您需要最后一个单词旁边的“阅读更多”,只需删除// 来自此代码

//$pos = strrpos($wpse0001_excerpt, \'</\');
            //if ($pos !== false)
            // Inside last HTML tag
            //$wpse0001_excerpt = substr_replace($wpse0001_excerpt, $excerpt_end, $pos, 0);
            //else
            // After the content

EDIT

你还是会打电话的the_excerpt() 通常在模板文件中使用the_excerpt()

结束