有没有办法在没有`get_Header()`的情况下将所有排队的脚本/样式放到一个模板中?

时间:2014-02-11 作者:Neta Meta

在我的主插件页面中,我检查某个页面是否被访问。如果是,我加载某个模板。按以下方式:

add_filter( \'template_include\', array($this, \'includeTemplate\'), 99 );
public function includeTemplate($template){ 
    global $wp_query;
    if(is_page() && $wp_query->query[\'pagename\'] == \'my_page_name\'){
       include(plugin_dir_path( __FILE__ ).\'templates/my_page_name.php\');
       die;
    }
    return $template;
}
我的问题是,如何在不使用the_header()

我尝试过:

global $wp_scripts;
foreach( $wp_scripts->queue as $handle ) :
    echo $handle . \' | \';
endforeach;
上面的话引起了共鸣admin-bar

谢谢

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

the_header() 甚至似乎不是本机WP功能?

从技术上讲,获取标题并不是真正导致加载样式和脚本的原因,而是wp_head() 应在那里拨打的电话(以及wp_footer() 调用页脚)。因此,它们很可能是您应该使用的。

如果您确实需要较低级别的内容,您可能需要查看:

SO网友:s_ha_dum

未经测试,但您应该能够运行wp_enqueue_scripts 过滤你自己。

do_action(\'wp_enqueue_scripts\');
这将为您提供加载脚本和样式的最佳机会,而无需加载可能(正确或错误)连接到的其他内容[wp_head\'][2], [wp\\U页脚][3], or thewp\\u print\\u styles `挂钩,似乎受到滥用。

您可能还想要

do_action(\'wp_print_head_scripts\');
以及

do_action(\'wp_print_footer_scripts\');

结束

相关推荐

看不到Style.css的实时版本--是Web服务器缓存吗?

我的网站正在加载style.css?ver=1.0style.css?ver=1.0 有不同的内容style.css, 即使在style.css?ver=1.0删除浏览器缓存无法解决此问题。正在加载style.css?ver=1.0 在另一个浏览器中。返回显示的第一个浏览器style.css?ver=1.0 现在匹配style.css.问题是:我已经更新了style.css 再次上传。如果我在浏览器中加载此文件,它将显示旧版本。如果我进行硬刷新,它会显示旧版本。如果清除浏览器缓存,它将显示旧版本。如果我加