Editor: trim footnote anchors from post excerpts.

Adds the `excerpt_remove_footnotes` function to trim footnote anchors from post excerpts.

Props: ramonopoly, costdev, mukesh27, mcsf, azaozz.
Fixes #58805.

Built from https://develop.svn.wordpress.org/trunk@56244


git-svn-id: http://core.svn.wordpress.org/trunk@55756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
isabel_brison 2023-07-17 01:47:26 +00:00
parent aa7c98232f
commit 54f218ae18
3 changed files with 25 additions and 1 deletions

View File

@ -1009,6 +1009,27 @@ function excerpt_remove_blocks( $content ) {
return $output;
}
/**
* Parses footnotes markup out of a content string,
* and renders those appropriate for the excerpt.
*
* @since 6.3.0
*
* @param string $content The content to parse.
* @return string The parsed and filtered content.
*/
function excerpt_remove_footnotes( $content ) {
if ( ! str_contains( $content, 'data-fn=' ) ) {
return $content;
}
return preg_replace(
'_<sup data-fn="[^"]+" class="[^"]+">\s*<a href="[^"]+" id="[^"]+">\d+</a>\s*</sup>_',
'',
$content
);
}
/**
* Renders inner blocks from the allowed wrapper blocks
* for generating an excerpt.

View File

@ -3952,6 +3952,7 @@ function human_time_diff( $from, $to = 0 ) {
*
* @since 1.5.0
* @since 5.2.0 Added the `$post` parameter.
* @since 6.3.0 Removes footnotes markup from the excerpt content.
*
* @param string $text Optional. The excerpt. If set to empty, an excerpt is generated.
* @param WP_Post|object|int $post Optional. WP_Post instance or Post ID/object. Default null.
@ -3966,6 +3967,7 @@ function wp_trim_excerpt( $text = '', $post = null ) {
$text = strip_shortcodes( $text );
$text = excerpt_remove_blocks( $text );
$text = excerpt_remove_footnotes( $text );
/*
* Temporarily unhook wp_filter_content_tags() since any tags
@ -4008,6 +4010,7 @@ function wp_trim_excerpt( $text = '', $post = null ) {
*/
$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[&hellip;]' );
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
}
/**

View File

@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
$wp_version = '6.3-beta4-56243';
$wp_version = '6.3-beta4-56244';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.