我正在为一些教职员工设置一个儿童主题,作为主题的一部分,我希望在激活主题时激活一些插件。因此,自然地,我使用了after_setup_theme动作并调用了我的设置函数。它运行良好,但它可以在每个请求(管理员和其他请求)上运行。我通过将其添加到设置功能的末尾来证明了这一点:
echo '<script type="text/javascript">alert("This action was run")</script>';
结果,每个管理员请求和每个前端请求都会收到一个JavaScript警报(我有一个网络设置,因此显然在该主题未处于活动状态的网站上,它没有运行该功能)
所以问题是,这是一个错误吗?我在某种程度上做错了吗?这是我正在使用的完整代码:
add_action( 'after_setup_theme', 'fwp_setup' );
function fwp_setup(){
// -- Unrelated code remove for the sake of brevity
require_once($_SERVER['DOCUMENT_ROOT'].'/wp-admin/includes/plugin.php');
activate_plugin('enable-media-replace/enable-media-replace.php');
activate_plugin('seo-image/seo-friendly-images.php');
activate_plugin('w3-total-cache/w3-total-cache.php');
echo '<script type="text/javascript">alert("This action was run")</script>';
}
任何见解将不胜感激!
after_switch_theme
完全符合我的意图。在主题切换到主题后触发。下面提到的解决方案之一使用switch_theme
。这没有理想的结果,因为它仅在切换主题时发生。引用此Trac评论