我正在制作一个插件来注册比赛的参与者。我在使用魔法场。在我的开发服务器上,当我以普通用户的身份输入一个条目时,所有数据都保存在数据库中,并显示在后端。每次我尝试将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\'] );
}
}
所有字段都存在,我创建了一个元盒,我真的不知道为什么不保存。
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\'] );
}
}