Хорошо, поэтому у меня есть пользовательский шаблон страницы, разработанный с использованием javascript и php (давайте назовем эту страницу1).Javascript вставляет второй шаблон пользовательской страницы (page2), который отображает содержимое внутри div, называемого содержащимся на page1.
У меня проблема:
Неустранимая ошибка: Невозможно повторно объявить contentAd () (ранее объявленный в / home/content/70/8886870/html/wp-content/themes/myTheme/functions.php:20) в /home/content/70/8886870/html/wp-content/themes/myTheme/functions.php в строке 23
Рассматриваемая функция выполняется как часть ловушки.Это не вопрос того, что functions.php дочерней темы совпадает с родительским.Это гораздо сложнее ..
Я точно знаю, почему это происходит: поскольку page1 является контейнером для page2, функции в functions.php запускаются при загрузке страницы (как и должно быть).Однако, поскольку page2 включает в себя wp-blog-header.php (необходимый для пользовательских запросов wp и вызовов метаданных), когда javascript проходит через page2 для вставки своего содержимого в page1, тот же файл functions.php запускается снова и вызывает вышеуказанную ошибку.
Я ищу способ обойти это.JavaScript запускается автоматически при загрузке страницы через AJAX.Страница2 должна существовать за пределами страницы1 - их нельзя объединить.Page1 и Page2 НЕ используют одни и те же хуки.На самом деле, Page2 даже не вызывает функцию contentAd ().Это полностью проблема функции functions.php, выполняемой более одного раза из-за вызова ajax.
Есть ли способ предотвратить выполнение 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.