Intereting Posts
WordPress Не обновляет данные API после изменений в сообщениях Разметка страницы не работает на странице шаблона Pagination перейти на первую страницу, если я на последнем месте Я хочу обработать следующие js для обработки запроса AJAX на моей функции, чтобы вычислить общее количество просмотров сообщения Могу ли я поместить файлы темы WordPress в другую папку? Заголовок сайта и теглайн на странице параметров темы Принудительный перевод на передний план Пользовательские мета-ящики: несколько полей в повторяемом поле Проблема с SSL и переадресацией Функция add_media_page не создает подменю Общая настройка Разрешить множественное уведомление по электронной почте Добавление CPT изменяет всю компоновку моего сайта, за исключением архива того CPT Невозможно передать теги rels Как изменить BuddyPress Mystery Man Graphic без перезаписи основного файла изображения не может обновлять wordpress или устанавливать плагины, кажется, что «думаю», он все еще находится на локальной установке

Почему включение файла в функции functions.php не работает?

Например, если я напишу какой-то код (ed добавьте пользовательский тип сообщения или что-то еще) в функции functions.php моей темы, он отлично работает. Если я переведу его в новый файл, include() файл в файл functions.php моей темы, он больше не работает (но код отладки с использованием error_log() все еще работает.

например

Вот функции functions.php:

 <?php // ###### functions.php ###### error_log("fu_debug: Including the post type."); add_action('init', 'fu_create_project_post_type'); function fu_create_project_post_type() { error_log("fu_debug: create project post type"); register_post_type( 'fu_project', array( 'labels' => array( 'name' => __( 'Projects' ), 'singular_name' => __( 'Project' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'projects'), ) ); } ?> 

Это прекрасно работает. Теперь, если я изменю функции.php на это:

 <?php // ###### functions.php ###### include "newfile.php"; ?> 

и поместите код внутри newfile.php следующим образом:

 <?php // ###### newfile.php ###### error_log("fu_debug: Including the post type."); add_action('init', 'fu_create_project_post_type'); function fu_create_project_post_type() { error_log("fu_debug: create project post type"); register_post_type( 'fu_project', array( 'labels' => array( 'name' => __( 'Projects' ), 'singular_name' => __( 'Project' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'projects'), ) ); } ?> 

код больше не работает, но сообщение error_log () все еще отображается в журналах.

Почему сообщение об ошибке все еще работает, но код WordPress не работает?

При включении файлов в functions.php вам нужно указать правильный get_template_directory() , используя get_template_directory() :

 include( get_template_directory() . '/newfile.php' ); 

Это укажет на тему PARENT:
require_once( get_template_directory() . '/include/myscript.php' );

Если вы используете тему CHILD (и вы должны!), Используйте это:
require_once( get_stylesheet_directory() . '/include/myscript.php' );