在插件中创建免费的脚本和样式模板

时间:2015-05-06 作者:chifliiiii

让我解释一下我想做什么。我正在创建一个插件,该插件将有一个类似于仪表板的主页,用于管理插件面向公众的一面。就像普通WordPress网站中的一个单独的应用程序一样。

该页面需要与用户主题完全分离,因为这将是完全自定义的。将使用管理栏,而不使用其他内容。

我的第一个想法是使用自定义模板创建一个页面(已经这样做了),第二步是从wp\\u页眉+wp\\u页脚中删除所有操作,并删除所有不是WordPress核心的脚本和样式。

因此,目前我仍停留在第2步,在继续之前,我想知道是否还有其他方法可以做到这一点,我错过了。

2 个回复
最合适的回答,由SO网友:chifliiiii 整理而成

这就是我到目前为止所做的,如果有更好的方法我还不知道,我不会把它标记为正确答案。

add_action(\'wp_enqueue_scripts\',array( $this, \'remove_all_actions\'), 99);
public function remove_all_actions(){
        if( \'custom-template.php\' != get_page_template_slug( get_queried_object_id() ))
            return;
        global $wp_scripts, $wp_styles;

        $exceptions = array(
            \'admin-bar\',
            \'jquery\',
            \'query-monitor\'
        );

        foreach( $wp_scripts->queue as $handle ){
            if( in_array($handle, $exceptions))
                continue;
            wp_dequeue_script($handle);
        }

        foreach( $wp_styles->queue as $handle ){
            if( in_array($handle, $exceptions) )
                continue;
            wp_dequeue_style($handle);
        }

        // Now remove actions
        $action_exceptions = array(
            \'wp_print_footer_scripts\',
            \'wp_admin_bar_render\',

        );

        // No core action in header
        remove_all_actions(\'wp_header\');

        global $wp_filter;
        foreach( $wp_filter[\'wp_footer\'] as $priority => $handle ){

            if( in_array( key($handle), $action_exceptions ) )
                continue;
            unset( $wp_filter[\'wp_footer\'][$priority] );
        }

    }

SO网友:JoshuaDoshua

只为页面提供管理栏似乎有点奇怪,但我能想到的最简单的解决方案是使用条件函数取消脚本/样式的注册,并为此特定页面创建自定义模板文件。不幸的是,您必须找出加载的所有样式/脚本

add_action(\'init\', \'remove_all_the_things\');

function remove_all_the_things() {

  if (is_page(123)) {
    wp_dequeue_style(\'main\');
    wp_dequeue_script(\'jquery\');
    // etc
    // remove other actions/filters as well
  }
}
您可以使用创建自定义页眉/页脚

header-empty.php &;footer-empty.php

使命感get_header(\'empty\'); &;get_footer(\'empty\'); 在页面模板中

参考号:

https://codex.wordpress.org/Function_Reference/is_pagehttps://codex.wordpress.org/Function_Reference/wp_dequeue_scripthttps://codex.wordpress.org/Function_Reference/wp_dequeue_stylehttps://codex.wordpress.org/Function_Reference/get_headerhttps://codex.wordpress.org/Function_Reference/get_footer

结束

相关推荐

Custom Post Templates

The Issue: 我正在寻找定制的单篇文章模板,以添加或删除单个元素作为普通单篇文章的功能。有很多方法可以在WordPress中为单个帖子创建自定义帖子模板。尤其是post格式是使用默认模板处理默认情况的绝佳机会;然而,我需要真正的自定义模板。The Idea: 我的第一种方法是根据post ID添加if/else语句:// check if custom post if ( is_single(\'999\') ) // check if there is a custom