php - 如何限制 WP 中的手动摘录长度?
问题描述
可以使用以下代码段控制 WP 帖子的 WP 默认(自动functions.php
)摘录长度;
来自WP 法典
// . Post excerpt adjustment (Auto)
// . ==============================
function wpdocs_custom_excerpt_length( $length ) {
return 20;
}
add_filter( 'excerpt_length', 'wpdocs_custom_excerpt_length', 999 );
我的问题是你如何限制手动的?
你知道,用户自己专门添加的摘录吗?
(*)这里有一个 8 年前的问题,它确实提供了一些背景信息,但考虑到当前年份和 WP 取得的进展,我想再次发布这个问题,并在这个主题上得到一些澄清。
添加上下文:(编辑:2019 年 3 月 12 日)
并不是说之前发布的问题的原始答案不起作用,看起来真的很笨重。我正在使用exerpt_length
过滤器寻找更简单和更强大的答案。而不是使用类似下面的东西来修剪文本;(如果可能的话)
function excerpt($limit) {
return wp_trim_words(get_the_excerpt(), $limit);
}
解决方案
默认情况下,我们在核心中有以下过滤:
add_filter( 'get_the_excerpt', 'wp_trim_excerpt' );
但在wp_trim_excerpt()
没有手动摘录设置时,修剪仅适用于帖子的内容。
这是自定义过滤的未经测试的建议:
add_filter( 'get_the_excerpt', function( $excerpt, $post ) {
if ( has_excerpt( $post ) ) {
$excerpt_length = apply_filters( 'excerpt_length', 55 );
$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[…]' );
$excerpt = wp_trim_words( $excerpt, $excerpt_length, $excerpt_more );
}
return $excerpt;
}, 10, 2 );
对手动摘录应用类似的修剪。
希望您可以根据自己的需要进一步调整。
推荐阅读
- asp.net-core-2.0 - 如何在 Visual Studio 2019 上使用 asp.NetCore 2.0.0
- unix - Bmon 遇到分段错误
- c - c语言在内存中存储数组的机制是什么
- javascript - 将子组件中的值检索回 LIstGroup 的父组件?
- go - 函数将自己称为 goroutine,这很危险吗?
- android - 使用 WorkManager 上传大型位图
- python - pyenv 在每个“源”附加带有垃圾邮件的 .zshrc 文件
- python - JSON 加载返回 unicode 而不是字典
- coldfusion - 是否可以将 ODBC 服务添加到现有的 CF 2016 安装?
- c# - 调用委托无法将 void 转换为 system.delegate