Вопрос

Как правило, в моем файле функции темы мне потребуются другие файлы, чтобы сохранить все аккуратные.

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/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top