更改CMB2自定义域时,WordPress不保存文章修订

时间:2016-11-28 作者:Ben

我使用CMB2在帖子中添加一些自定义字段。

如果更改这些自定义字段的值并更新帖子,则不会创建新的修订。只有当我更改帖子的核心内容(标题、内容、缩略图…)时,才会创建新的修订。

即使我只更改自定义字段,是否可以让Wordpress创建新版本?

1 个回复
SO网友:prosti

尽管如此,我发现更新一些关于优秀的post.保存自定义字段:

add_action( \'_wp_put_post_revision\', \'save_cmb2\' );
function save_cmb2( $post, true ) {
// save the custom field
}
请注意,第二个参数是true 如果您喜欢自动保存。

File: wp-includes/revision.php
275: /**
276:  * Inserts post data into the posts table as a post revision.
277:  *
278:  * @since 2.6.0
279:  * @access private
280:  *
281:  * @param int|WP_Post|array|null $post     Post ID, post object OR post array.
282:  * @param bool                   $autosave Optional. Is the revision an autosave?
283:  * @return int|WP_Error WP_Error or 0 if error, new revision ID if success.
284:  */
285: function _wp_put_post_revision( $post = null, $autosave = false ) {
如果使用wp_restore_post_revision 作用

/**
 * Restores a post to the specified revision.
 *
 * Can restore a past revision using all fields of the post revision, or only selected fields.
 *
 * @since 2.6.0
 *
 * @param int|WP_Post $revision_id Revision ID or revision object.
 * @param array       $fields      Optional. What fields to restore from. Defaults to all.
 * @return int|false|null Null if error, false if no fields to restore, (int) post ID if success.
 */
function wp_restore_post_revision( $revision_id, $fields = null ) {
。。。在您应该使用的函数中定义了一个挂钩:

File: wp-includes/revision.php
392:    /**
393:     * Fires after a post revision has been restored.
394:     *
395:     * @since 2.6.0
396:     *
397:     * @param int $post_id     Post ID.
398:     * @param int $revision_id Post revision ID.
399:     */
400:    do_action( \'wp_restore_post_revision\', $post_id, $revision[\'ID\'] );
这将引导您找到如下代码:

add_action( \'wp_restore_post_revision\', \'restore_cmb2\' );
function restore_cmb2( $post ) {
// restore the custom field
}

相关推荐

如何清理wp-content/plugins/wordpress-seo中不必要的文件?

我目前维护Wordpress网站7年。磁盘使用率最近已满,因此我需要定期检查自动备份并保存这些备份,然后将其从服务器中删除。当我检查时,插件文件夹中的wordpress seo文件夹(这是Yoast seo默认插件文件夹)占用了太多空间。据我所知,它充满了各种版本的插件文件。确切地说,它位于wordpress seo插件的js/dist文件夹中。它包含几种类型的小型javascript,每个名称的末尾都有某种序列或版本号,总容量约为250-300 MB。我可以清理这些文件吗?如果是,是否安全?如果我从以前