Включите файлы в файл функций дочерней темы
-
16-10-2019 - |
Вопрос
Как правило, в моем файле функции темы мне потребуются другие файлы, чтобы сохранить все аккуратные.
require_once("foo.php");
Теперь работая в детской теме, я хотел бы сделать то же самое. Я добавляю пользовательские параметры администратора, и кажется невозможным включить код. Я повторил путь, чтобы убедиться, что я вызываю правильный файл, и он вызывает правильное местоположение, но ничто в этом файле, кажется, не работает. Код работает нормально, если помещен в файл функций темы дочерних тем.
Решение
Детские темы ссылаются на родительские темы по имени каталога и в обычной установке все ваши темы живут в wp-content/themes/
, поэтому я бы сказал, что это нормально ссылаться на эти темы по их относительному пути:
include '../parent-theme/some-file.php';
Если это делает вас неудобным, я наблюдаю за следующими постоянными в WordPress 3.0.1 с двадцать десять Детская тема под названием TT-Child:
TEMPLATEPATH /home/adam/public_html/wp3/wp-content/themes/twentyten
STYLESHEETPATH /home/adam/public_html/wp3/wp-content/themes/tt-child
Таким образом, вы можете сделать следующее в теме вашего ребенка, чтобы ссылаться на каталог родительских тем:
include TEMPLATEPATH . '/some-file.php';
Другие советы
В детской теме правильный путь
require_once( get_stylesheet_directory() . 'foo.php');
Находясь в родительской теме, вы все еще можете использовать
require_once ( get_template_directory() . 'foo.php' );
get_template_directory()
До сих пор работает в теме ребенка, к сожалению, нацеливается на каталог родительских тем. В вашем случае это полезно
Привет @curtismchale:
Не знаю, это так или нет, но вам нужно включить цитаты вокруг foo.php
, вот так:
require_once('foo.php');
Это решает вашу проблему?
Использовать <?php get_template_part( 'name-the-page-here' ); ?>
Анкет Без расширения .php
Вы определенно не хотите жесткого кодирования URL. Правильный способ сделать это
require_once( get_stylesheet_directory(). '/my_included_file.php' );
Смотрите больше информации на WordPress Codex
Теперь, если ваш eg modifing header.php, который включает в себя, вы бы ссылались на это следующим образом:
require_once( get_stylesheet_directory() . '/../parenthteme/my_included_file.php' );
Это вполне возможно и нормально делать в включении в functions.php
.
Я делаю это так в теме моего ребенка (php
подкаканатор для кода):
include 'php/core.php';
Если у вас есть проблемы без очевидной причины, попробуйте включить режим отладки в wp-config.php
:
define('WP_DEBUG', true);
Там могут возникнуть соответствующие ошибки, но не отображаются.
Я думаю, что это лучший способ пройти путь к теме вашего ребенка
<?php $get_my_path = dirname( get_bloginfo('stylesheet_url') ); ?>
<?php require_once( $get_my_path. '/my_included_file.php' ); ?>
Получите идею от http://dynamicweblab.com/2013/02/get-template-path-in-wordpress-child-themes/