是否可以通过编程方式禁用主题?

时间:2019-01-16 作者:gordie

我正在构建一个插件,加载iFrame来显示一些内容。我有特定的脚本;该内容的样式,因此在加载这些模板时希望忽略活动主题;两者都可以节省加载时间和;避免CSS冲突。

我知道有可能dequeue all scripts & styles 使用wp\\u enqueue\\u脚本和wp\\u enqueue\\u脚本挂钩。

事情是这样的,因为我的插件也会对一些脚本和样式进行排队,所以找到一种方法来禁用当前的主题,而不是纠结于卸载一些文件而不是其他文件,这会更干净。

那么:是否可以忽略/卸载某些页面/模板上的当前主题?

谢谢

1 个回复
SO网友:bueltge

这里没有专门的钩子。然而,钩子switch_theme 应该对你有用。

/**
 * Switches current theme to new template and stylesheet names.
 *
 * @since unknown
 * @uses do_action() Calls \'switch_theme\' action on updated theme display name.
 *
 * @param string $template Template name
 * @param string $stylesheet Stylesheet name.
 */
function switch_theme($template, $stylesheet) {
    update_option(\'template\', $template);
    update_option(\'stylesheet\', $stylesheet);
    delete_option(\'current_theme\');
    $theme = get_current_theme();
    do_action(\'switch_theme\', $theme);
}
因此,如果您完成了任务,您应该编写自定义函数,通过钩子停用主题并激活回主题。

add_action(\'switch_theme\', function($theme){
    if ( \'Your_Theme_Name\' == $theme )
    {
        // do something.
    }

    // do others.

    return;
});

相关推荐

如何使用api.wordpress.org从wordpress.org/Themes中获取主题信息?

我正试图从WordPress中获取一些主题描述的html代码,我知道这在codecanyon中是可以实现的,但在WordPress中却无法实现。org,我已经阅读了api。wordpress。组织主题和插件部分的文档https://codex.wordpress.org/WordPress.org_API 并且能够通过插件实现这一点https://api.wordpress.org/plugins/info/1.0/{slug}.json, 但主题并不那么明确。有人能帮帮我吗?