Я хочу показать меню администрирования WordPress в пользовательских виджетах панели инструментов. Как это сделать?
Как отобразить меню администратора WordPress в пользовательском виджете панели инструментов?
Ответы (2)
Или просто вставьте это проверенное решение в файл functions.php темы и измените его. Затем, когда вам нужно, вы можете вызвать настройки администратора с помощью get_option()
, исправленные с помощью ввода от b__ и снова протестированные.
function register_mysettings() {
register_setting( 'michal-option-group', 'new_option_name' );
register_setting( 'michal-option-group', 'some_other_option' );
}
add_action( 'admin_init', 'register_mysettings' );
function add_michal_dashboard_widget(){
wp_add_dashboard_widget(
'michal_dashboard_widget', // slug.
'Michal Dashboard Widget', // title
'michal_dashboard_widget_function' // widget code
);
}
function michal_dashboard_widget_function(){
if (isset($_POST['new_option_name'])) update_option( 'new_option_name', sanitize_text_field( $_POST['new_option_name']));
if (isset($_POST['some_other_option'])) update_option( 'some_other_option', sanitize_text_field( $_POST['some_other_option']));
?>
<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<?php settings_fields( 'michal-option-group' ); ?>
<?php do_settings_sections( 'michal-option-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">New Option Name</th>
<td><input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></td>
</tr>
<tr valign="top">
<th scope="row">Some Other Option</th>
<td><input type="text" name="some_other_option" value="<?php echo get_option('some_other_option'); ?>" /></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
<?php
}
add_action( 'wp_dashboard_setup', 'add_michal_dashboard_widget' );
person
Michal S
schedule
06.03.2014
Функции внутри функций - не очень хорошая идея...
admin_init
и его обратный вызов должны быть вне michal_dashboard_widget_function
. Кроме того, admin_init
работает только в админке, нам не нужно проверять наличие is_admin()
.
- person brasofilo; 06.03.2014
иногда я пытаюсь быть быстрым и так тупо ошибаюсь. спасибо б__
- person Michal S; 06.03.2014
Прежде всего: вы должны создать виджет панели инструментов. подробнее о том, как это сделать, можно прочитать здесь: API Dashboard Widgets
Теперь, чтобы показать меню, вы должны взглянуть на этот пост: Получить всех доступных администраторов страницы в Wordpress
Удачи!
person
Eliran Efron
schedule
06.03.2014