WordPress 5.7 增强导入/导出功能

WordPress 5.7 增强了WordPress内置的导入/导出功能。

文章目录

一个新的导出特定的文章标题过滤器

WP 5.7引入了为文章标题创建特定于导出的过滤器。

从WordPress 2.5和2.6开始, post_content 和 post_excerpt 都具有特定于导出的过滤器: the_content_export和 the_excerpt_export。 但是,post_title使用了 the_title_rss,它在两种重要方式上的行为有所不同:

  • 它从字符串中剥离HTML标签
  • 它对标题字符串进行HTML编码

这些行为对于导出而言并不理想,因为它会更改文章标题,从而导致导出文件中的数据丢失,并且在导入时不正确的文章重复匹配。此更改新增新的过滤器 the_title_export,而不在该用途上使用 the_title_rss。新的过滤器的用途和 the_content_export 、 the_excerpt_export 一样。

用法示例:为导出的文章标题添加前缀:

function wporg_edit_exported_title( $post_title ) {
     $post_title = sprintf(
         /* Translators: the post title. */
         __( '[IMPORTED] %s', 'text-domain' ),
         $post_title
     );
     return $post_title;
 }
 add_filter( 'the_title_export', 'wporg_edit_exported_title', 10 );

更多详情,请查阅#52250。

在导出文件中添加每个文章的最后修改日期

WP 5.7 添加 post_modified 和 post_modified_gmt 字段到所产生的WXR导出文件。

在确定文章的哪个版本是最新版本时,这可以提供更大的灵活性,并可以实现涉及更新和向现有文章或页面添加修订的导入逻辑。

这是RSS feed的新结构的示例(13-14行为新增字段):

<item>
<title><?php echo $title; ?></title>
<link><?php the_permalink_rss(); ?></link>
<pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate>
<dc:creator><?php echo wxr_cdata( get_the_author_meta( 'login' ) ); ?></dc:creator>
<guid isPermaLink="false"><?php the_guid(); ?></guid>
<description></description>
<content:encoded><?php echo $content; ?></content:encoded>
<excerpt:encoded><?php echo $excerpt; ?></excerpt:encoded>
<wp:post_id><?php echo (int) $post->ID; ?></wp:post_id>
<wp:post_date><?php echo wxr_cdata( $post->post_date ); ?></wp:post_date>
<wp:post_date_gmt><?php echo wxr_cdata( $post->post_date_gmt ); ?></wp:post_date_gmt>
<wp:post_modified><?php echo wxr_cdata( $post->post_modified ); ?></wp:post_modified>
<wp:post_modified_gmt><?php echo wxr_cdata( $post->post_modified_gmt ); ?></wp:post_modified_gmt>
<wp:comment_status><?php echo wxr_cdata( $post->comment_status ); ?></wp:comment_status>
<wp:ping_status><?php echo wxr_cdata( $post->ping_status ); ?></wp:ping_status>
<wp:post_name><?php echo wxr_cdata( $post->post_name ); ?></wp:post_name>
<wp:status><?php echo wxr_cdata( $post->post_status ); ?></wp:status>
<wp:post_parent><?php echo (int) $post->post_parent; ?></wp:post_parent>
<wp:menu_order><?php echo (int) $post->menu_order; ?></wp:menu_order>
<wp:post_type><?php echo wxr_cdata( $post->post_type ); ?></wp:post_type>
<wp:post_password><?php echo wxr_cdata( $post->post_password ); ?></wp:post_password>
<wp:is_sticky><?php echo (int) $is_sticky; ?></wp:is_sticky>
</item>

更多详情,请查阅#52180。

菜单项导入的性能更好

现在,wp_update_nav_menu_item()函数可在更新菜单项时使用 wp_resolve_post_date()。这允许将菜单项的 post_date设置为特定值,而不仅仅是“now”。这使WordPress导入器可以执行更快,更准确的检查重复。

更多详情,请查阅#52189。

文章网址:https://www.wpbull.com/news/1899.html