2017-02-06 5 views
1

Я пытаюсь сделать короткий HTML-компонент в файле PHP, чтобы позже включить его на разные страницы сайта.WordPress - get_template_directory() возвращающий URL родительской темы

Я хочу использовать get_template_directory(), потому что я думал, что он вернет исходный URL моей фактической темы. Тема, которую я использую, - это детская тема. Вместо этого кажется, что он возвращает URL-адрес корневого каталога родителя.

Что было бы правильным способом сделать все это? Часть HTML, которую я пытаюсь включить в некоторые разные страницы в качестве компонента с некоторыми кнопками. Но я не включаю его в качестве плагина.

Я проверил все в папке моей дочерней темы и все, что AFAIK выглядит нормально.

У меня есть этот код в функции.php, и я думаю, что это нормально из предыдущего вопроса, который я задал здесь раньше.

<?php 
add_action('wp_enqueue_scripts', 'adapt_child_enqueue_styles'); 
function adapt_child_enqueue_styles(){ 
    wp_dequeue_style('theme-responsive'); 
    wp_enqueue_style('theme-child-style', get_template_directory_uri().'/style.css'); 
    wp_enqueue_style('theme-child-responsive', get_stylesheet_directory_uri().'/css/responsive.css'); 
} 
?> 

ответ

1

Я пытаюсь сделать небольшой компонент HTML в PHP файл, чтобы включить его позже в разных страницах сайта.

То, что вы описываете, называется частью шаблона. Хотя можно использовать оператор include в сочетании с get_stylesheet_directory(), есть лучший способ его обработки: get_template_part().

Как уже указывал другой пользователь; проблема, с которой вы сталкиваетесь в данный момент, связана с использованием неправильной функции. get_template_directory() вернет путь к родительской теме, тогда как get_stylesheeet_directory() вернет путь к текущей/дочерней теме.

Пример использования включают в себя:

include(get_stylesheet_directory() . '/my-template-part.php'); 

Замена с помощью get_template_part():

get_template_part('my-template-part'); 

get_template_part() функция является более надежной, чем простое включать в себя утверждение. Взгляните на документы для получения дополнительной информации: https://developer.wordpress.org/reference/functions/get_template_part/

+0

Где я должен поместить файл детали в php? – Lorthas

+1

Это будет относительно вашего корня темы. Если вы используете его, как показано выше, он сначала рассмотрит вашу дочернюю тему для my-template-part.php. Если он не может быть найден там, он проверит родительскую тему. Скорее всего, вы захотите переместить свой шаблон в папку. Например. 'get_template_part ('template-parts/my-template-part');' –