更新POST_META不工作

时间:2014-08-13 作者:worldwildwebdev

我的自定义帖子类型中有一个元框,我从前端表单接收数据。问题是,在这个函数中的某个地方,出现了一些错误,并且在管理编辑面板中更改的数据不适用于该帖子(update\\u post\\u meta没有完成他的工作,我猜),下面是我的代码:


// HANDLER FOR THE FORM AND SAVING THE RIGHT DATA
<?php elseif(isset($_POST[\'test\'])){ 
     $location = $_POST[\'_location\'];
     $new_post = array(
        \'post_title\'    =>   $_POST[\'title\'],
        \'post_content\'  =>   $_POST[\'description\'],
        \'post_status\'   =>   \'pending\',          
        \'post_type\' =>   \'eventstest\'       
        );

        $pid = wp_insert_post($new_post);

        add_post_meta($pid, \'location\', $location, true);
}

do_action(\'save_post\', \'eg_save_events_meta\', 1, 2); // save the custom fields
do_action(\'wp_insert_post\', \'wp_insert_post\'); 


// ADD THE META BOX
function add_events_metaboxes() { 
   add_meta_box(\'wpt_events_location\', \'Event Location\', \'wpt_events_location\', \'eventstest\', \'side\', \'default\');}

//DISPLAING META BOXES
function wpt_events_location() { 
global $post;

echo \'<input type="hidden" name="eventmeta_noncename" id="eventmeta_noncename" value="\' . 
wp_create_nonce( plugin_basename(__FILE__) ) . \'" />\';

$_location = get_post_meta($post->ID, \'location\', true);

echo \'<input type="text" name="_location" value="\' . $_location  . \'" />\';}


//SAVING AND UPDATE META FIELDS
function eg_save_events_location( $post_id ){

if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) 
    return;
if ( !wp_verify_nonce( $_POST[\'myplugin_noncename\'], plugin_basename( __FILE__ ) ) )
    return;
if ( \'page\' == $_POST[\'post_type\'] ) 
{
    if ( !current_user_can( \'edit_page\', $post_id ) )
    return;
}
else
{
    if ( !current_user_can( \'edit_post\', $post_id ) )
    return;
}

$mydata = $_POST[\'_location\'];
update_post_meta($post->ID, \'location\', $mydata);}

add_action(\'save_post\', \'eg_save_events_location\', 1, 2); // save the custom fields once again in functions.php too

1 个回复
最合适的回答,由SO网友:worldwildwebdev 整理而成

在我删除了所有wp\\u nonce字段之后,一切都稍微正常了。据我所知,他们的工作是防止从不受欢迎的地方发送请求和采取某些行动。我想我无法进行适当的暂时验证。

结束

相关推荐

WPAlChemy Metabox重写插件

所以我的问题是:我创建了一个名为“项目”的自定义帖子类型。我已经通过WPAlchemy成功添加了几个代谢组。这些很好用。我遇到的问题是,当我为相关项目创建带有复选框的元框时,我可以使用复选框列出所有项目标题,但当我至少选择一个并保存自定义帖子时,它会重写Slug。我想是因为我打电话<?php the_title(); ?>. 下面是我的meta PHP文件代码:<div class=\"my_meta_control\"> <p>Add or subt