我已经注意到,某些插件(例如Contact-form-7,Nextgen-gallery,可能还有其他插件)具有一个有趣的反功能,即当其is_admin()
为true 时不注册其短代码。
有问题的是,如果您想从ajax生成一些动态内容(可能包含短代码),并使用“正确的” wp方式(admin-ajax.php),则不可能使WP_ADMIN为真。请参阅admin-ajax.php的第一行:
define( 'DOING_AJAX', true );
if ( ! defined( 'WP_ADMIN' ) ) {
define( 'WP_ADMIN', true );
}
现在,似乎有PHP扩展允许您取消设置已定义的常量(hacky),或者可能有一种方法可以使未记录的WP_Screen系统混乱$GLOBALS['current_screen']
并使is_admin()
函数返回false?最有用的解决方法似乎是发布到页面或网站根目录。
is_admin()
假时,插件注册其短代码是否很常见?如果是这样,除了可能是过早的优化,我找不到任何文档或原因。
is_admin
为doing_it_wrong,WP中有更好的方法来检查ajax请求。最后,如果插件让js / css入队,则如果使用'wp_enqueue_scripts'
操作,如果它做得很好,它将不会影响管理页面,因为该钩子不会在管理页面中触发。