如何限制 WP 中的手动摘录长度?

Bea*_*iie 5 php wordpress function

可以使用以下代码段控制WP 帖子的 WP 默认(自动)摘录长度functions.php

来自WP Codex

// . Post excerpt adjustment (Auto)
// . ==============================
function wpdocs_custom_excerpt_length( $length ) {
    return 20;
}
add_filter( 'excerpt_length', 'wpdocs_custom_excerpt_length', 999 );
Run Code Online (Sandbox Code Playgroud)

我的问题是您如何限制手动操作?

您知道吗,用户自己专门添加的摘录?

(*)有一个8岁的问题在这里,这并提供一些背景但考虑到目前一年进步WP取得了我想再次发布问题并获得一些关于这个问题的清晰度。

添加上下文:(编辑:2019 年 3 月 12 日)

并不是说之前发布的问题的原始答案不起作用,但看起来确实很笨拙。我正在寻找使用exerpt_length过滤器的更简单和可靠的答案。而不是使用类似以下内容来修剪文本;(如果可能

function excerpt($limit) {
    return wp_trim_words(get_the_excerpt(), $limit);
}
Run Code Online (Sandbox Code Playgroud)

bir*_*ire 5

默认情况下,我们在核心中有以下过滤:

add_filter( 'get_the_excerpt', 'wp_trim_excerpt' );
Run Code Online (Sandbox Code Playgroud)

但在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 );
Run Code Online (Sandbox Code Playgroud)

对手动摘录应用类似的修剪。

希望您可以根据自己的需要进一步调整。