WordPress的 - 自定义页面包括造成问题的功能文件
好了,所以我设计了JavaScript和PHP的自定义页面模板(让我们称之为这个第1页)第二个自定义页面。 JavaScript插入第二个自定义页面(page2)模板,该模板显示页面1中包含的div内部的内容。WordPress的 - 自定义页面包括造成问题的功能文件
我的问题是
Fatal error: Cannot redeclare contentAd() (previously declared in /home/content/70/8886870/html/wp-content/themes/myTheme/functions.php:20) in /home/content/70/8886870/html/wp-content/themes/myTheme/functions.php on line 23
有问题的函数运行的钩的一部分。这不是儿童主题的functions.php与父母相同的问题。这是更为复杂..
我知道正是为什么这是发生:由于第1页是第2页的容器,在functions.php中运行的功能时,页面加载(如它应该)。但是,由于第2页包括可湿性粉剂博客 - header.php文件(需要自定义WP查询和调用的元数据),当通过JavaScript的运行第2页插入其内的第1页的内容,非常相同的functions.php再次运行,并导致上述错误。
我在寻找解决的办法。 javascript通过ajax在页面加载时自动运行。第2页必须存在于第1页之外 - 它们不能以任何方式合并。 Page1和Page2不使用相同的钩子。实际上,page2甚至不会调用contentAd()函数。由于ajax调用,这完全是functions.php执行多次的问题。
有没有办法阻止的functions.php从给定的网页上执行?否则,我接受你的建议!
第1页:
<?php
/*
Template Name: Page1
*/
?>
<?php get_header(); ?>
<script type="text/javascript" src="../wp-content/themes/myTheme/insert.js"></script>
<div id="content">
<div class="padder">
<?php do_action('bp_before_blog_home') ?>
<?php do_action('template_notices') ?>
<div class="page" id="blog-latest" role="main">
<div class="spacer" style="float:left;"> </div>
<div class="spacer" style="float:right;"> </div>
<ol class="row" id="updates">
<div id="contained"></div>
</ol>
</div>
</div>
</div>
<?php get_sidebar() ?>
<?php get_footer() ?>
insert.js:
$(document).ready(function() {
$('#contained').load('../wp-content/themes/myThemes/page2.php');
});
第2页:
<?php include("../../../wp-blog-header.php"); ?>
A whole bunch of code sits in here but keeping the above line all by itself still produces the error hence my theory.
您的functions.php文件内的功能被包裹在一个如果块,类似以下是,是吗?
if (! function_exists('contentAd')):
如果没有 - 他们应该是。该检查应能防止发生错误并防止不必要的处理。
成功!当代码越来越复杂时,很容易错过这样一个简单的解决方案。谢谢。 – Sweepster 2012-03-19 05:19:39
的错误是没有的JavaScript的感觉。 JavaScript不在服务器端运行,它在浏览器中运行。 jquery load()方法正在向该脚本发出ajax请求,并且当您包含wp-blog-header.php时,wordpress将执行一次全新的引导。你的问题在别处。当你直接在浏览器中访问wp-content/themes/myThemes/page2.php时会发生什么? – Rob 2012-03-19 02:20:46
它加载正常。我知道错误不是JavaScript。错误在于wordpress在获取page2时第二次调用functions.php。因为functions.php只能初始化一次,所以会产生错误。 – Sweepster 2012-03-19 05:14:56