From 04237613bec9d7ca9550d171a6de1dd0b70c7402 Mon Sep 17 00:00:00 2001 From: pento Date: Mon, 25 Jan 2021 00:08:02 +0000 Subject: [PATCH] Export: Create an export-specific filter for post titles. Since WordPress 2.5 and 2.6, `post_content` and `post_excerpt` have both had export-specific filters: `the_content_export`, and `the_excerpt_export`, respectively. `post_title`, however, has used `the_title_rss`, which behaves differently in two important ways: - It strips HTML tags from the string. - It HTML-encodes the title string. These behaviours are not ideal for exports, since it changes the post title, resulting in data loss in export files, and incorrect post duplicate matching on import. This changes replaces the usage of `the_title_rss` with a new filter, `the_title_export`. The new filter is intended to be used in the same as `the_content_export` and `the_excerpt_export`. Props jmdodd, audrasjb. Fixes #52250. git-svn-id: https://develop.svn.wordpress.org/trunk@50011 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/export.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/wp-admin/includes/export.php b/src/wp-admin/includes/export.php index 75c7b4924f..d33e2ffafb 100644 --- a/src/wp-admin/includes/export.php +++ b/src/wp-admin/includes/export.php @@ -542,8 +542,14 @@ function export_wp( $args = array() ) { foreach ( $posts as $post ) { setup_postdata( $post ); - /** This filter is documented in wp-includes/feed.php */ - $title = apply_filters( 'the_title_rss', $post->post_title ); + /** + * Filters the post title used for WXR exports. + * + * @since 5.7.0 + * + * @param string $post_title Title of the current post. + */ + $title = wxr_cdata( apply_filters( 'the_title_export', $post->post_title ) ); /** * Filters the post content used for WXR exports.