Я заметил, что некоторые плагины, такие как Contact-form-7 , Nextgen-gallery , возможно, другие, имеют интересную анти-функцию - не регистрировать свои шорткоды, когда is_admin()
это правда.
Проблема в том, что если вы хотите сгенерировать какой-то динамический контент (который может иметь шорткод) из ajax и использовать «правильный» способ wp, admin-ajax.php, то невозможно, чтобы WP_ADMIN был истинным. Смотрите первые строки admin-ajax.php:
define( 'DOING_AJAX', true );
if ( ! defined( 'WP_ADMIN' ) ) {
define( 'WP_ADMIN', true );
}
Теперь, кажется, есть расширения PHP, которые позволят вам отменить определенную константу (хакерскую), или может быть способ возиться с недокументированной системой WP_Screen и $GLOBALS['current_screen']
заставить is_admin()
функцию возвращать false ?? Наиболее полезный обходной путь, кажется, отправляет на страницу или корень сайта.
Часто ли плагины регистрируют свои шорткоды, когда is_admin()
ложно? Если так, я не мог найти никакой документации или причины для этого кроме того, что это может быть преждевременной оптимизацией.
is_admin
выполняется с помощью do_it_wrong, в WP есть гораздо лучшие способы проверки запросов на ajax. Наконец, если плагин ставит в очередь js / css, если он делает это хорошо (используя'wp_enqueue_scripts'
действие), это не повлияет на страницы администратора, потому что эта ловушка не запускается на страницах администратора.