无法保存自定义帖子类型字段

时间:2016-11-18 作者:firetabz

我正在制作一个插件来注册比赛的参与者。我在使用魔法场。在我的开发服务器上,当我以普通用户的身份输入一个条目时,所有数据都保存在数据库中,并显示在后端。每次我尝试将edti字段作为管理员,它都不会保存并将我发送到“wp admin/edit.php”

这是我的保存功能

    add_action(\'save_post\', \'add_fields_contest\', 10, 2 );

    function add_fields_contest( $id, $post ) {
    require_once(ABSPATH . \'wp-includes/pluggable.php\');
    if ( $post->post_type == \'contest\' ) {
        update_post_meta( $id, \'userid\',                $_POST[\'userid\'] );
        update_post_meta( $id, \'title\',             $_POST[\'title\'] );
        update_post_meta( $id, \'name\',          $_POST[\'name\'] );
        update_post_meta( $id, \'age\',           $_POST[\'age\'] );
    }
}
所有字段都存在,我创建了一个元盒,我真的不知道为什么不保存。

2 个回复
SO网友:Nefro

尝试调试

add_action(\'save_post\', \'add_fields_contest\', 10, 2 );

function add_fields_contest( $id, $post ) {
require_once(ABSPATH . \'wp-includes/pluggable.php\');
if ( $post->post_type == \'contest\' ) {
    update_post_meta( $id, \'userid\',                $_POST[\'userid\'] );
    update_post_meta( $id, \'title\',             $_POST[\'title\'] );
    update_post_meta( $id, \'name\',          $_POST[\'name\'] );
    update_post_meta( $id, \'age\',           $_POST[\'age\'] );
    echo \'Saving data to post id: \'.$id;
    var_dump($_POST);
    die();
}
我会推荐“Advanced Custom Fields“”插件

SO网友:Benoti

对此我不确定,但据我所知。前端提交是保存的,需要可插入的(因为有魔术字段),但可能会导致从后端重定向,因此您可以尝试:

function add_fields_contest( $id, $post ) {
   if(!is_admin()){
       require_once(ABSPATH . \'wp-includes/pluggable.php\');
   }
   if ( $post->post_type == \'contest\' ) {
    update_post_meta( $id, \'userid\',                $_POST[\'userid\'] );
    update_post_meta( $id, \'title\',             $_POST[\'title\'] );
    update_post_meta( $id, \'name\',          $_POST[\'name\'] );
    update_post_meta( $id, \'age\',           $_POST[\'age\'] );
  }
}