函数文档

wp_post_revision_meta_keys()

💡 云策文档标注

概述

wp_post_revision_meta_keys() 函数用于确定哪些文章元字段应启用修订功能。它基于注册的元数据参数,筛选出 revisions_enabled 为 true 的字段,并可通过过滤器进行自定义。

关键要点

  • 函数接受一个必需的字符串参数 $post_type,指定正在修订的文章类型。
  • 返回一个数组,包含应启用修订的元键列表。
  • 内部逻辑合并了通用文章类型和特定文章类型的注册元数据,然后检查每个元数据的 revisions_enabled 参数。
  • 提供 wp_post_revision_meta_keys 过滤器,允许开发者修改返回的元键列表。

代码示例

function wp_post_revision_meta_keys( $post_type ) {
	$registered_meta = array_merge(
		get_registered_meta_keys( 'post' ),
		get_registered_meta_keys( 'post', $post_type )
	);

	$wp_revisioned_meta_keys = array();

	foreach ( $registered_meta as $name => $args ) {
		if ( $args['revisions_enabled'] ) {
			$wp_revisioned_meta_keys[ $name ] = true;
		}
	}

	$wp_revisioned_meta_keys = array_keys( $wp_revisioned_meta_keys );

	/**
	 * Filter the list of post meta keys to be revisioned.
	 *
	 * @since 6.4.0
	 *
	 * @param array  $keys      An array of meta fields to be revisioned.
	 * @param string $post_type The post type being revisioned.
	 */
	return apply_filters( 'wp_post_revision_meta_keys', $wp_revisioned_meta_keys, $post_type );
}

注意事项

  • 此函数在 WordPress 6.4.0 版本中引入,用于支持文章元数据的修订功能。
  • 相关函数包括 get_registered_meta_keys() 和 apply_filters(),用于获取元数据和应用过滤器。
  • 在多个核心函数中使用,如 _wp_preview_meta_filter() 和 wp_save_revisioned_meta_fields(),确保元数据修订的一致性。

📄 原文内容

Determine which post meta fields should be revisioned.

Parameters

$post_typestringrequired
The post type being revisioned.

Return

array An array of meta keys to be revisioned.

Source

function wp_post_revision_meta_keys( $post_type ) {
	$registered_meta = array_merge(
		get_registered_meta_keys( 'post' ),
		get_registered_meta_keys( 'post', $post_type )
	);

	$wp_revisioned_meta_keys = array();

	foreach ( $registered_meta as $name => $args ) {
		if ( $args['revisions_enabled'] ) {
			$wp_revisioned_meta_keys[ $name ] = true;
		}
	}

	$wp_revisioned_meta_keys = array_keys( $wp_revisioned_meta_keys );

	/**
	 * Filter the list of post meta keys to be revisioned.
	 *
	 * @since 6.4.0
	 *
	 * @param array  $keys      An array of meta fields to be revisioned.
	 * @param string $post_type The post type being revisioned.
	 */
	return apply_filters( 'wp_post_revision_meta_keys', $wp_revisioned_meta_keys, $post_type );
}

Hooks

apply_filters( ‘wp_post_revision_meta_keys’, array $keys, string $post_type )

Filter the list of post meta keys to be revisioned.

Changelog

Version Description
6.4.0 Introduced.