Intereting Posts

Флажок в столбце не сохраняет значение

У меня есть флажок выше моего обмена в пользовательском сообщении. Когда я проверяю его и публикую / обновляю сообщение, он снова становится непроверенным, что означает, что он не сохраняет его значение. Вот мой код для флажка:

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; } 

Ваша помощь будет высоко оценена.

Solutions Collecting From Web of "Флажок в столбце не сохраняет значение"

Изменить,

 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_key,

 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, '/>';