这里有一个想法:
/**
* Reactivate the sticky theme, if someone activates another theme.
*/
add_action( \'switch_theme\', \'wpse_permanent_theme\' );
function wpse_permanent_theme( $new_name )
{
$sticky_theme_name = \'twentyfifteen\'; // Modify this to your needs!
// Get the sticky theme info, to check if it exists (named):
$sticky_theme = wp_get_theme( $sticky_theme_name );
// Reactivate the sticky theme:
if( $sticky_theme->get( \'Name\' ) && $sticky_theme_name !== $new_name )
{
remove_action( current_action(), __FUNCTION__ );
switch_theme( $sticky_theme_name );
}
}
您必须根据需要修改粘性主题名称。您可能需要进一步测试。
另一个要尝试的方法是删除switch_themes
功能适用于所有用户!
例如,我们可以通过以下方式即时过滤掉此功能:
/**
* Remove the \'switch_themes\' capability for all users.
*/
add_filter(\'user_has_cap\', function( $allcaps )
{
if( isset( $allcaps[\'switch_themes\'] ) )
unset( $allcaps[\'switch_themes\'] );
return $allcaps;
});
所以
current_user_can( \'switch_themes\' )
在中的主题激活期间进行检查
themes.php
返回false。