Я настраиваю дочернюю тему для некоторых из моих преподавателей, и как часть этой темы я хотел бы, чтобы несколько плагинов были активированы во время активации темы. Поэтому, естественно, я использовал действие 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