0

通过研究,我发现这个问题已经被多次问过,但是,我的例子有点不同。我正在尝试使用以下 elseif 向预先存在的客户环境添加字符限制:

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

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

谢谢!

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

4

3 回答 3

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

于 2013-07-30T19:16:48.703 回答
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>';
}
于 2013-07-30T19:17:25.473 回答
0

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

简单的方法:

安装Advanced Excerpt 插件并根据需要在管理面板的 Settings -> Excerpt 中替换the_excerpt();和配置(或在函数调用中使用字符串查询变量)。the_advanced_excerpt()这也可以让你做很多事情,比如自定义“阅读更多”链接(或排除它)、在末尾添加“...”或其他一些文本、去除或允许特定的 html 标签等。

繁琐的方式:

您可以将substrPHP 函数(docs)与 freejosh 的答案结合使用get_the_content();get_the_excerpt()将其修剪为您想要的任意数量的字符(或做任何您想做的事情)。

高级/清洁方式:

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

于 2013-07-30T19:25:00.603 回答