Intereting Posts
Как скрыть параметры плагина для редакторов через functions.php Какую таблицу хранит порядок сортировки носителей? Google Page Speed ​​Insights не распознает настройки WP-Cofig? Невозможно использовать is_single () и is_admin в functions.php Плагин галереи jQuery для взаимодействия с Picasa Как обновить существующую таблицу при обновлении плагина? Текст «Вы вышли из системы» хранение базы данных в управлении версиями что происходит с существующими медиафайлами при переключении на формат структуры каталога год / месяц? Заказывайте по названию без учета 'the' Добавить число новых сообщений (post_status = pending) в меню администрирования Эффективность wp_options по сравнению с новой таблицей window.send_to_editor выдает неисчерпаемую строковую литералную ошибку при добавлении изображения с описанием нескольких строк __ () с sprintf возвращает нетранслируемую строку медиа-библиотека, не показывающая миниатюры после удаления полного изображения

API настроек wordpress и структура массива опций

как вы получаете API настроек для сохранения параметров, которые находятся в такой структуре массива, как это:

$array = array ( array( 'id'=> '1', 'name'=> 'tom', 'pageurl'=> 'someurl', 'notes'=> 'someNotes' ) array( 'id'=>'2', 'name'=>'harry', 'pageurl'=>'someotherurl', 'notes'=>'anothernote' ) ); 

Этот массив получает наборы данных, добавленные и удаленные пользователем. Класс wp_list_table, который я использую, был настроен таким же образом, и мне нужно иметь возможность редактировать эти значения позже, не удаляя весь набор данных массива, который мне нужно изменить, а затем воссоздать его. Я пробовал пример прессы и безрезультатные варианты вариантов вариантов. Я пытаюсь обновить поле имени в массиве массивов. Только причина, по которой я использую эту структуру массива, связана с таблицей списка wp.

О том, чтобы вытащить мои волосы, пытаясь заставить это работать.

Вот что я пробовал:

 add_action('admin_init', 'ozh_sampleoptions_init' ); add_action('admin_menu', 'ozh_sampleoptions_add_page'); // Init plugin options to white list our options function ozh_sampleoptions_init(){ register_setting( 'ozh_sampleoptions_options', 'fp_options', 'ozh_sampleoptions_validate' ); } // Add menu page function ozh_sampleoptions_add_page() { add_options_page('Ozh\'s Sample Options', 'Sample Options', 'manage_options', 'ozh_sampleoptions', 'ozh_sampleoptions_do_page'); } // Draw the menu page itself function ozh_sampleoptions_do_page() { ?> <div class="wrap"> <h2>Ozh's Sample Options</h2> <form method="post" action="options.php"> <?php settings_fields('ozh_sampleoptions_options'); ?> <?php $options = get_option('fp_options'); ?> <table class="form-table"> <tr valign="top"><th scope="row">Tab Name</th> <td><input type="text" name="ozh_sample[name]" size="75" value="<?php echo $options[0]['name']; ?>" /></td> </tr> </table> <p class="submit"> <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /> </p> </form> </div> <?php } // Sanitize and validate input. Accepts an array, return a sanitized array. function ozh_sampleoptions_validate($input) { // Say our option must be safe text with no HTML tags $input[0]['name'] = wp_filter_nohtml_kses($input['name']); return $input; } 

API-интерфейс настроек обычно ожидает данных в форме key => value . Я уверен, что можно сохранить данные массива с помощью API настроек, но это несколько обходит цель API.

Если я правильно понимаю ваш вопрос, вы пытаетесь использовать параметр Plugin Option и используете значение этой опции для обновления класса wp_list_table . Самый простой подход может заключаться в том, чтобы сохранить уникальный ключ в качестве параметра Plugin, а затем перекрестно ссылаться на этот уникальный ключ на отдельный массив массивов, который будет использоваться для расширения wp_list_table .

Другими словами, постройте wp_list_table значений wp_list_table , возможно, так:

 <?php function plugin_slug_get_wp_list_table_data() { $data = array( 'a' = array( 'id'=> '1', 'name'=> 'tom', 'pageurl'=> 'someurl', 'notes'=> 'someNotes' ), 'b' = array( 'id'=> '1', 'name'=> 'tom', 'pageurl'=> 'someurl', 'notes'=> 'someNotes' ), 'c' = array( 'id'=> '1', 'name'=> 'tom', 'pageurl'=> 'someurl', 'notes'=> 'someNotes' ), 'd' = array( 'id'=> '1', 'name'=> 'tom', 'pageurl'=> 'someurl', 'notes'=> 'someNotes' ), ); return $data; } ?> 

Затем сохраните параметр «Плагин» как 'a' , 'b' , 'c' или 'd' .

Затем получите свой вариант:

 <?php $plugin_slug_options = get_option( 'plugin_slug_options' ); $plugin_slug_wp_list_table_setting = $plugin_slug_options['wp_list_table_setting']; ?> 

Затем используйте параметр, чтобы получить данные для обновления wp_list_table :

 <?php $plugin_slug_wp_list_table_array = plugin_slug_get_wp_list_table_data(); $plugin_slug_wp_list_table_data = $plugin_slug_wp_list_table_array[$plugin_slug_wp_list_table_setting]; ?> 

(Как вы действительно выполняете обновление wp_list_table зависит от вас …)