изменение wp-admin / widgets.php

Мы хотим немного изменить дизайн страницы виджетов в панели администратора, главным образом, чтобы помочь администратору сайта понять, где каждый виджет будет отображаться на сайте:

введите описание изображения здесь

Для этого нам нужно изменить HTML, который визуализирует widgets.php (просто изменить css недостаточно). Как мы будем делать это, не касаясь ядра?

Solutions Collecting From Web of "изменение wp-admin / widgets.php"

Если вы обновите WordPress до 3.3.1, что вам абсолютно необходимо, каждая область виджета в admin теперь имеет идентификатор, который вы можете использовать для таргетинга через CSS, чего действительно должно быть достаточно. См. http://core.trac.wordpress.org/ticket/18334 для примера.

Я не могу вынести вопрос из головы, но у меня нет времени для полного решения. Поэтому я просто записываю свою идею здесь, тогда я поставлю небольшую щедрость.

  • В wp-admin/widgets.php есть действие 'widgets_admin_page' над другим контентом. Здесь вы можете разместить окно предварительного просмотра.
    Образец кода:

     add_action( 'widgets_admin_page', 'show_widget_preview' ); function show_widget_preview() { $preview_widgets = $GLOBALS['wp_registered_sidebars']; unset ( $preview_widgets['wp_inactive_widgets'] ); print '<div style="border:2px solid #ddf;padding:20px">' . '<pre>' . htmlspecialchars( print_r( $preview_widgets, TRUE ) ) . '</pre>' . '</div>'; } 

    Это отображает массив всех зарегистрированных боковых панелей. Вы должны пройти через все боковые панели, чтобы найти зарегистрированные виджеты.

  • Чтобы сделать предварительный просмотр полезным, вам нужны два файла: шаблон HTML и таблица стилей.
    Я бы использовал add_theme_support() .
    Пример кода для functions.php темы:

     add_theme_support( 'widget_preview', array ( 'template' => get_stylesheet_directory() . '/widget-preview.php', 'stylesheet' => get_stylesheet_directory() . '/widget-preview.css' ) ); 
  • В show_widget_preview() вы вставляете таблицу стилей и загружаете шаблон. Отобразить зарегистрированные боковые панели в предопределенных заполнителях в widget-preview.php .

  • Обновите шаблон на AJAX после того, как пользователь нажал кнопку « Сохранить» в виджетах.

  • Вызовы: учитывайте режим доступности, небольшие окна и конфликты CSS. Показать полезное сообщение, если боковая панель не зарегистрирована (описания боковой панели?). Что должно произойти, когда пользователь пытается перетащить виджет в окно предварительного просмотра? 🙂

короткий ответ – вы не можете, не без касания ядра.

однако вы можете установить описание каждой области виджетов (текст под заголовком области виджета) в функции register_sidebar.