Область администратора Wordpress, лучшее действие, чтобы зацепить, чтобы добавить исправленное всплывающее окно - PullRequest
1 голос
/ 30 апреля 2019

Я исследую наилучшее действие в области администрирования Wordpress, чтобы добавить практически фиксированный блок позиции, который застрял в правой части экрана на КАЖДОЙ странице администратора.

Целью этого является предоставление всплывающего окна при нажатии, в котором будут перечислены некоторые шорткоды / доступные параметры. Код будет добавлен в плагин.

Я посмотрел и вижу следующие возможности, но какой будет наилучшим для желаемого результата?

  • admin_footer
  • admin_init
  • admin_notices

Я полагаю, что ответ на этот вопрос был бы наиболее приемлемым, если бы в нем объяснялось общее действие, которое необходимо использовать для отображения на всех страницах. И обстоятельства, которые могут вызвать исключение (поскольку я считаю, что общее использование - это admin_notices, но, возможно, это исключение?).

1 Ответ

0 голосов
/ 30 апреля 2019

Вы правы, перечисляя возможности хуков в своем ответе, однако у каждого из них есть «стандартные» варианты использования, которые один предпочтительнее использовать по сравнению с другим.См. Ниже:

Действие: admin_notices

Действие admin_notices относится непосредственно к разделу html над основным содержимым страницы администратора.Например, над полем заголовка в редакторе страниц / сообщений.

Из-за размещения HTML вы будете ограничены в том, какой стиль вы сможете использовать, поскольку окружающие элементы <div> могут вызвать проблемы сабсолютное и фиксированное позиционирование.

Это также «отраслевой стандарт», чтобы зарезервировать это действие только для отображения связанных с плагином / темой уведомлений отсюда и название admin_notices.Такие вещи, как новые обновления Wordpress, уведомления о конфигурации плагинов или даже полезные советы / инструкции для темы / плагина при активации.

Действие: admin_footer

Возможно, вынамереваясь использовать действие admin_footer, поскольку оно предоставляет гораздо больше свободы для стиля, поскольку вокруг него меньше сжимающих <div> элементов.

Действие admin_footer также не зарезервировано ни для чего, в частности, в отличие отadmin_notices.И, следовательно, будет лучше соответствовать вашим целям, так как ваше добавление - это не уведомление, а скорее постоянная функция, тогда как уведомления имеют тенденцию быть временными.

Дополнительная информация

Сейчасвы выбрали соответствующее действие для своей функции, вам, вероятно, потребуется загрузить CSS-файлы и, возможно, JS-файлы для стилизации вашего фиксированного всплывающего окна.

Для этого вам потребуется использовать admin_enqueue_scriptsaction ( Подробнее здесь ).

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

$current_screen = get_current_screen();
if ( $current_screen->post_type == '' || $current_screen->base != 'post' ) {
    return 'html';
}
...