使用不包括Get_Header()和Get_Footer()的主题模板,我可以使用什么操作钩子向页面帖子添加一个JavaScript?

时间:2011-04-20 作者:racl101

所以我不想包括get_header()get_footer() 标记是因为此页面将使用thickbox模式插件作为iframe加载,其内容将是一个表单,我不希望上述标记呈现所有菜单、横幅图像和菜单以及页脚内容,因为这将导致此页面上的大量滚动。

然而,当前我运行的是这样的:

add_action(\'template_redirect\', \'my_plugin_add_js\');
然而,当我取出get_header()get_footer()标记,则JavaScript不会加载,即使\'my_plugin_add_js\' 在末尾的body HTML标记中添加,而不是在head标记中添加,如下所示:

wp_register_script("validate_form", plugins_url(\'js/my_plugin_validate_form.js\', __FILE__), array(\'jquery\', \'validation\'), \'1.0\', true);
因此,我推测“template\\u redirect”操作挂钩不适合使用。

3 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

完全跳过wp_headwp_footer 这似乎不是一个好主意,许多核心组件和插件都依赖于这些挂钩。相反,您可以创建一个轻型页眉和页脚,并通过一个额外的参数加载它们get_header()get_footer(). get_header( \'light\' ) 将加载header-light.php 而不是常规头文件。创建一个没有其他页面的可视标题的页面,但保留wp_head 动作完好无损。

SO网友:Rarst

这与您用来设置队列的挂钩无关(尽管您应该使用wp_enqueue_scripts 相反,但你所做的也会打破这一点),这是因为通过删除页眉和页脚,你也在删除wp_headwp_footer 处理排队脚本输出的挂钩(以及其他许多挂钩)。

如果您的模板非常小,那么可能最容易显式地使用wp_print_scripts() (传递脚本句柄)。

SO网友:Chad Von Lind

您是否考虑过使用条件标记?

例如:

<?php if(is_page(\'your-page-name\')) { ?>
//inlcude script here
<?php } ?>
有关条件语句的详细信息:http://codex.wordpress.org/Conditional_Tags

结束

相关推荐

是否有用于入队脚本的筛选器来剥离type=“Text/javascript”属性

script type=\"text/javascript\" 在HTML5中是可选的,所有浏览器(即使是旧的浏览器)都可以识别没有它的JavaScript。我正在构建一个HTML5网站,希望我的脚本输出保持一致。但是,使用WordPress排队功能的脚本打印为type=\"text/javascript\". CSS还打印有type=\"text/css\", 这也是不需要的。我找不到删除这些属性的筛选器。有吗?