有限的" the_excerpt" WordPress环境中的文本

时间:2013-07-30 19:10:24

标签: php wordpress

通过研究,我发现这个问题已被多次提出,但是,我的实例有点不同。我正在尝试使用以下elseif:

为预先存在的客户环境添加字符限制
elseif(get_post_type() == 'post') {
    echo '<p class="excerpt">';
        the_excerpt();
    echo '</p>';
}

我试图通过函数使用几种方法,但是,我一直无法找到解决方案。我本身不是一个PHP开发人员,所以我在学习,因为我去了这里,希望开发人员可以帮助解决这个问题,并提供一个如何在将来处理这个问题的简要说明。

谢谢!

P.S。 - 我在这里阅读了文档:http://codex.wordpress.org/Conditional_Tags并且在不破坏else语句的其余部分的情况下无法使其工作。

3 个答案:

答案 0 :(得分:2)

默认情况下,摘录长度设置为55个字。要使用excerpt_length过滤器将摘录长度更改为20个单词,请将以下代码添加到主题中的functions.php文件中:

function custom_excerpt_length( $length ) {
    return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

http://codex.wordpress.org/Function_Reference/the_excerpt

答案 1 :(得分:1)

使用get_the_excerpt返回文字而不打印文字,并使用substr将其剪切为您想要的长度:

elseif(get_post_type() == 'post') {
    echo '<p class="excerpt">';

    $excerpt = get_the_excerpt();
    $limit = 100;
    if (strlen($excerpt) > $limit) {
        echo substr($excerpt, 0, $limit), '[...]';
    } else {
        echo $excerpt;
    }

    echo '</p>';
}

答案 2 :(得分:0)

有很多方法可以做到这一点。

简单方法:

安装Advanced Excerpt plugin并将the_excerpt();替换为the_advanced_excerpt(),并根据需要在“设置”中进行配置 - &gt;在管理面板中摘录(或在函数调用中使用字符串查询变量)。这也可以让你做很多事情,比如自定义“阅读更多”链接(或排除它),在最后添加“...”或其他一些文本,剥离或允许特定的html标签等。

繁琐的方式:

您可以将substr PHP函数(docs)与get_the_content();get_the_excerpt()结合使用,将其修剪为您想要的多个字符(或做任何您想做的事情)它就像freejosh的回答一样。

高级/清洁方式:

使用Srikanth的答案中描述的方法将摘录长度过滤为所需的多个字符(这是我的首选方式,除非您需要某些高级摘录选项,如use_words等)。