nmystic
  • 0
Новичок

Файл, включенный в functions.Php через require_once(), не будет отображаться?

  • 0

Я пытаюсь загрузить файл через require_once() для обработки некоторых расширенных функций в моей теме. Я мог бы поместить весь код прямо в functions.php, но я пытаюсь выделить этот код в отдельный скрипт.

Это файл widget_context.php (см. код ниже), и прямо сейчас я просто пытаюсь вывести некоторый текст обратно в каждый виджет. Он отлично работает, когда я делаю эхо непосредственно из функции, которая вызывает файл.

Однако я не могу получить эхо или возврат (из файла widget_context.php) для отображения в виджете.

Что мне не хватает?

Эта функция находится внутри functions.php

add_filter('in_widget_form', 'widget_context');

function widget_context(){
    //echo works here:
    //echo 'in widget form'; 
    $widgets_context_file = TEMPLATEPATH . "/widget_context.php";
    require_once($widgets_context_file);
}

Вот содержимое widget_context.php

<?php
    echo 'place the checkboxes here';
    return 'place the checkboxes here';
?>
Share
  1. Я не уверен, почему, но по какой-то причине вы должны использовать include() or require() внутри form() вместо include_once() and require_once() . Я предполагаю, что form() вызывается несколько раз, поэтому файл внешнего вида включается только в первый раз. include_once() и require_once() будет нормально работать внутри widget(), но все же лучше использовать include() и require() в случае, если виджет имеет несколько экземпляров.

    • 0
  2. Если вы когда-либо решали это, поделитесь ответом с другими. Одной из возможных причин того, что вы испытали, является то, что вы были в дочерней теме. TEMPLATEPATH ссылается на родительскую тему, а STYLESHEETPATH ​​ссылается на дочернюю тему.

    • 0

Оставить ответ

You must login to add an answer.