开机自检中的复选框未保存值

时间:2012-10-17 作者:user1666698

在自定义帖子中,我的metabox上方有一个复选框。当我检查并发布/更新帖子时,它再次被取消选中,这意味着它没有保存它的价值。以下是复选框的代码:

add_action(\'add_meta_boxes\', \'my_meta_box\'); 
add_action(\'save_post\', \'save_postdata\');   
function my_meta_box() {
    add_meta_box(
        \'movie_meta_box\',
        \'Movie Meta Options\',
        \'movie_options_meta_box_func\',
        \'movie\'
    );
}
function movie_options_meta_box_func( $post ) {
  wp_nonce_field( plugin_basename( __FILE__ ), \'movie_noncename\' );
  $mydata = get_post_meta($post->ID, \'movie\', TRUE);
  echo \'<input type="checkbox" id="movie_abc" name="movie_abc" value="true" />\';
  echo \'<input type="text" id="movie_xyz" name="movie_xyz" value="\'.$mydata[\'movie_xyz\'].\'" size="60" />\';
}
function save_postdata( $post_id ) {
  if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
      return;
  if ( !wp_verify_nonce( $_POST[\'movie_noncename\'], plugin_basename( __FILE__ ) ) )
      return;
  if ( !current_user_can( \'edit_post\', $post_id ) )
      return;
  $mydata = array();
  foreach($_POST as $key => $data) {
    if($key == \'movie_noncename\')
      continue;
    if(preg_match(\'/^/i\', $key)) 
    {
      $mydata[$key] = $data;
    }
  }
  update_post_meta($post_id, \'movie\', $mydata);
  return $mydata;
}
我们将非常感谢您的帮助。

1 个回复
SO网友:Adam

改变

echo \'<input type="checkbox" id="movie_abc" name="movie_abc" value="true" />\';
到。。。

echo \'<input type="checkbox" id="movie_abc" name="movie_abc" value="1"\' . checked( $mydata , 1 ) . \'/>\';
。。。让我们知道你的进展。

更新请尝试以下操作,

echo \'<input type="checkbox" id="movie_abc" name="movie_abc" value="1"\', $mydata ? \' checked="checked"\' : \'\', \'/>\';
更新2这是一个重复的问题;

我现在在代码中看到,您没有更新的meta\\u键值,

movie_abc and movie_xyz
所以你需要加上,

update_post_meta($post_id, \'movie_abc\', $mydata); //current value of this key is "true" only?
update_post_meta($post_id, \'movie_xyz\', $mydata);
。。。到您的save_postdata() 作用

更新3

$mydata = get_post_meta($post->ID, \'movie\', TRUE);
if($mydata  == true)
$checked  = \'checked="checked"\'; 
echo \'<input type="checkbox" id="movie_abc" name="movie_abc" value=""\', $checked, \'/>\';

结束

相关推荐

Metabox中的Plupload-AJAX操作在类中不起作用

我正试图将WP Pluploader放入我帖子页面的元框中-根据Plupload Intergration in a meta-box? 和http://www.krishnakantsharma.com/2012/01/image-uploads-on-wordpress-admin-screens-using-jquery-and-new-plupload/我在第二个链接中的示例中实现了这一切。然而,我想把它全部放在一个类文件中。如果我把它全部打包成一个类,它就会停止工作。这都是因为:function