在第二次保存时触发SAVE_POST_{$POST->POST_TYPE}操作

时间:2020-05-01 作者:Alexander

我在插件中的CPT上有自定义metabox复选框。我想在保存此帖子时启动一个操作并保存新选项。但无论我尝试了多少次,它只在第二次保存时保存选项值。第一次后期保存-什么都不发生,第二次后期保存-保存值。这个代码怎么了?

这是我的代码:

add_action( \'save_post_theme_template\', \'clean_deactivated_theme_templates_post_meta\', 10, 2 );
function clean_deactivated_theme_templates_post_meta( $post_id, $post ) {
  $location = get_post_meta( $post_id, \'_est_template_location\', true );

  if ( \'header\' === $location ) {
    update_option( \'_est_cpt_save_\', \'header\', \'yes\' );
  } else {
    update_option( \'_est_cpt_save_\', \'other\', \'yes\' );          
  }

}

1 个回复
SO网友:Tony Djukic

我想你得把支票移走$location === header 然后使用以下命令保存元数据。

像这样:

//In your metabox before the fields
$location       = get_post_meta( $post->ID, \'_est_template_location\', true );
if( empty( $location ) || $location != \'header\' ) :
    $location = \'other\';
endif;
然后,在保存时,您已经解决了所有其他问题,这是一个简单的保存过程。

add_action( \'save_post\', \'clean_deactivated_theme_templates_post_meta\', 1, 2 );
function clean_deactivated_theme_templates_post_meta( $post_id, $post ) {
    if( !current_user_can( \'edit_post\', $post_id ) ) {
        return $post_id;
    }
    if( !isset( $_POST[\'theme_template_fields\'] ) || !wp_verify_nonce( $_POST[\'theme_template_fields\'], basename( __FILE__ ) ) ) {
        return $post_id;
    }
    $theme_template_meta[\'_est_template_location\']      = esc_textarea( $_POST[\'_est_template_location\'] );
    foreach( $theme_template_meta as $key => $value ) :
        if( \'revision\' === $post->post_type ) {
            return;
        }
        if( get_post_meta( $post_id, $key, false ) ) {
            update_post_meta( $post_id, $key, $value );
        } else {
            add_post_meta( $post_id, $key, $value);
        }
        if( !$value ) {
            delete_post_meta( $post_id, $key );
        }
    endforeach;
}

相关推荐

Metabox中的WP_LIST_TABLE在单击搜索按钮时不起作用

我试图在元框中显示WP\\U List\\U表。metabox用于列出课程的注册用户(StreetLMS课程帖子类型)。表格列包含user\\u id、user\\u name、percentage&;等级。我不认为这是一个事实,我正试图为一个自定义的帖子类型。我只是为了清楚起见才提到。现在的情况是,在我单击自定义帖子类型编辑屏幕上的“按Id搜索”(使用的wp搜索按钮功能)按钮之前,一切看起来都很好。WP\\u List\\u表将重定向回/WP admin/edit。php页面上单击搜索按钮(在输入