使用after_switch_theme
将激活主题(这很好,因为我们希望在新主题的上下文中运行检查)。因此,如果检查失败,我们可以简单地切换回上一个主题(通过after_switch_theme
像$oldtheme
).
如果缺少WPML($wpml_is_missing = true;
) 我们将输出一个管理通知,并使用switch_theme()
像这样:
add_action( \'after_switch_theme\', \'check_required_theme_plugins\', 10, 2 );
function check_required_theme_plugins( $oldtheme_name, $oldtheme ) {
if ( $wpml_is_missing ) :
// Info message: Theme not activated
add_action( \'admin_notices\', \'not_activated_admin_notice\' );
function not_activated_admin_notice() {
echo \'<div class="update-nag">\';
_e( \'Theme not activated: this theme requires WPML.\', \'text-domain\' );
echo \'</div>\';
}
// Switch back to previous theme
switch_theme( $oldtheme->stylesheet );
return false;
endif;
}
您可以在
functions.php
, 但要确保
after_switch_theme
在需要WPML之前调用。