让wp_footer()在没有wp_head()的情况下工作

时间:2017-05-16 作者:VVV

我有一个外部网站,需要从Wordpress中的另一个网站加载页眉和页脚。

我已成功使用以下代码完成此操作:

<?php
require_once("wp-blog-header.php"); /* setup the wordpress environment */     
require_once(dirname(__FILE__) . "/includes/head.php"); 
?>
此代码输出正确的标头。在…内head.php 我打电话wp_head(); 所有工程均按预期进行。

当我对页脚执行相同的操作时wp_footer(); 函数不输出脚本。

它只在我调用wp_head(); 就在之前wp_footer();

这是可行的,但它也输出了我的页脚内的所有页眉,这不是我想要的。

如何执行wp_footer() 不用打电话wp_head() 或者,我如何只输出通过wp_enqueue_script() 在我的功能中。php页面到页脚?

有什么想法吗?提前谢谢你。

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

不管它值多少钱,我找到了一个解决问题的方法,并将其张贴在这里,供其他迷失的灵魂使用:)

<?php
require_once("wp-blog-header.php"); /* setup the wordpress environment */ 

// This is to fool the system
// In order for wp_footer() to execute, we need to run wp_head() but since we don\'t want the output of the header again,
// we put it in a buffer, execute the function and then clear the buffer resulting in what we need
ob_start();
wp_head();
ob_clean();

require_once(dirname(__FILE__) . "/includes/footer.php"); 
?>

SO网友:Mark Kaplun

这类代码可能有很多种失败的方式,因为wordpress很可能会假设它显示主页,因此会添加(或不添加)脚本和基于它的样式。

可能会触发许多筛选器和操作,或者它们的执行结果基于所服务的页面类型。您可以设置$_SERVER 变量以获得所需的结果。

听起来你做得不对。如果wordpress提供可视化框架,那么其他站点应该嵌入其中,而不是反过来。如果出于任何原因你不能,你应该考虑不要“聪明”,直接嵌入你需要的CSS和JS

结束

相关推荐

在footer.php中实现函数的正确方式是什么

我有一个Wordpress网站,主题是我创建的“Twenty15”。我添加了一段PHP代码,该代码根据显示的模板更改页脚背景。这是我的代码部分:/************************/ /***** Footer Color *****/ /************************/ $this_template = get_current_template(); //echo $this_template; switch ($thi