Make WordPress Core

Opened 3 months ago

Last modified 3 months ago

#59348 new defect (bug)

Excerpt block length is not full customizable any more

Reported by: frzsombor's profile frzsombor Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: Posts, Post Types Keywords:
Focuses: Cc:

Description

Since the latest changes in /src/wp-includes/blocks/post-excerpt.php now the excerpt length is not fully customizable any more. The problem is that previously $excerpt = get_the_excerpt(); was used, which was filterable with get_the_excerpt, but now this excerpt is just getting forcefully trimmed by wp_trim_words based on the excerptLength option. Which is: a) A number forced to be between 10-100 b) now can not be changed or overwritted with custom code in any way.

If I want to display the excerpt of a post on the post's page, now there is no way to correctly display an excerpt that is longer than 100 words. I think this is a loss in features and a bad practice to limit the excerpt's usage in this way. At least allow $excerpt_length = $attributes['excerptLength']; to be modified with the already existing excerpt_length filter.

Mentioned change:
https://core.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&new=56065%40trunk%2Fsrc%2Fwp-includes%2Fblocks%2Fpost-excerpt.php&old=55246%40trunk%2Fsrc%2Fwp-includes%2Fblocks%2Fpost-excerpt.php

Change History (2)

#2 @frzsombor
3 months ago

Update:
I just found a way to edit default block settings with "Block Hooks" (block filters), for example:

function fzs_filter_metadata_registration( $metadata ) {
    if ($metadata['name'] === 'core/post-excerpt') {
        $metadata['attributes']['excerptLength'] = [
            'type' => 'number',
            'default' => 9999,
        ];
    }
    return $metadata;
};
add_filter( 'block_type_metadata', 'fzs_filter_metadata_registration' );
Last edited 3 months ago by frzsombor (previous) (diff)
Note: See TracTickets for help on using tickets.