Задать вопрос
@OneTwoThreeFourFive

Можно ли так сохранять post meta wordpress?

Здравствуйте. Есть дополнительные поля для постов. Похожие на эти:
<input type="text" name="custom-field[0][field-type-0] value="value" />
<input type="text" name="custom-field[1][field-type-0] value="value" />

<input type="text" name="custom-field[2][field-type-1] value="value" />
<input type="text" name="custom-field[3][field-type-1] value="value" />


Для сохранения использую такую функцию:
function custom_field_save( $post_id ) {
  if ( !isset($_POST['custom_field_nonce']) || !wp_verify_nonce($_POST['custom_field_nonce'], plugin_basename( __FILE__ ) ) ) return false;
  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE  ) return false;
  if ( !current_user_can('edit_post', $post_id) ) return false;
  if( !isset($_POST['custom-field']) ) {
    delete_post_meta($post_id, 'custom-field');
  } else {
    update_post_meta($post_id, 'custom-field', $_POST['custom-field']);
  }
}
add_action( 'save_post', 'custom_field_save' );


В базу данных записывается:
array(4) {
  [0]=>
  array(1) {
    ["field-type-0"]=>
    string(5) "value"
  }
  [1]=>
  array(1) {
    ["field-type-0"]=>
   string(5) "value"
  }
  [2]=>
  array(1) {
    ["field-type-1"]=>
    string(5) "value"
  }
  [3]=>
  array(1) {
    ["field-type-1"]=>
    string(5) "value"
  }
}


Можно ли так сохранять или надо использовать foreach для сохранения?
  • Вопрос задан
  • 123 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Думаю можно
А вот "delete_post_meta" - это лишнее
А лучше еще почитать здесь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы