返回介绍

_wp_post_revision_fields()

发布于 2017-09-11 13:48:38 字数 4305 浏览 865 评论 0 收藏 0

Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

_wp_post_revision_fields( array|WP_Post $post = array(),  bool $deprecated = false )

Determines which fields of posts are to be saved in revisions.


description


参数

$post

(array|WP_Post) (Optional) A post array or a WP_Post object being processed for insertion as a post revision.

Default value: array()

$deprecated

(bool) (Optional) Not used.

Default value: false


返回值

(array) Array of fields that can be versioned.


源代码

File: wp-includes/revision.php

function _wp_post_revision_fields( $post = array(), $deprecated = false ) {
	static $fields = null;

	if ( ! is_array( $post ) ) {
		$post = get_post( $post, ARRAY_A );
	}

	if ( is_null( $fields ) ) {
		// Allow these to be versioned
		$fields = array(
			'post_title' => __( 'Title' ),
			'post_content' => __( 'Content' ),
			'post_excerpt' => __( 'Excerpt' ),
		);
	}

	/**
	 * Filters the list of fields saved in post revisions.
	 *
	 * Included by default: 'post_title', 'post_content' and 'post_excerpt'.
	 *
	 * Disallowed fields: 'ID', 'post_name', 'post_parent', 'post_date',
	 * 'post_date_gmt', 'post_status', 'post_type', 'comment_count',
	 * and 'post_author'.
	 *
	 * @since 2.6.0
	 * @since 4.5.0 The `$post` parameter was added.
	 *
	 * @param array $fields List of fields to revision. Contains 'post_title',
	 *                      'post_content', and 'post_excerpt' by default.
	 * @param array $post   A post array being processed for insertion as a post revision.
	 */
	$fields = apply_filters( '_wp_post_revision_fields', $fields, $post );

	// WP uses these internally either in versioning or elsewhere - they cannot be versioned
	foreach ( array( 'ID', 'post_name', 'post_parent', 'post_date', 'post_date_gmt', 'post_status', 'post_type', 'comment_count', 'post_author' ) as $protect ) {
		unset( $fields[ $protect ] );
	}


	return $fields;
}

更新日志

Versiondescription
4.5.0The optional $autosave parameter was deprecated and renamed to $deprecated.
2.6.0Introduced.

相关函数

Uses

  • wp-includes/l10n.php: __()
  • wp-includes/plugin.php: apply_filters()
  • wp-includes/post.php: get_post()
  • wp-includes/revision.php: _wp_post_revision_fields

Used By

  • wp-includes/revision.php: _wp_post_revision_data()
  • wp-admin/includes/post.php: wp_create_post_autosave()
  • wp-admin/includes/revision.php: wp_get_revision_ui_diff()
  • wp-includes/revision.php: wp_restore_post_revision()
  • wp-includes/revision.php: wp_save_post_revision()

User Contributed Notes

  1. Skip to note content You must log in to vote on the helpfulness of this noteVote results for this note: 0You must log in to vote on the helpfulness of this note Contributed by Codex

    Using the function to get the list of revision fields:

    foreach ( _wp_post_revision_fields() as $field => $field_title ) : /* ... */

    Using the function to prepare a post for insertion into the database as a revision:

    $post = _wp_post_revision_fields( $post );

    For an autosave:

    $post = _wp_post_revision_fields( $post, true );

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文