Я действительно не знаю, хотите ли вы этого, потому что я не пытался понять, что вы делаете.Однако, вообще говоря, вы делаете это:
<?php get_template_part( get_template_part( 'category_parent' ) ); ?>
Редактировать:
Я посмотрел, что get_template_part()
делает в WP, и я думаю, что ответ Феликса Клинга - то, что вам нужно.Существует большая разница между отправкой чего-либо на экран и присвоением его переменной.
<?php
echo 'filename';
?>
Если вы включите этот файл, вы увидите filename
в браузере.PHP ничего не знает об этом.(Хорошо, это возможно, если вы использовали функции буферизации вывода, но это не имеет значения ...)
Однако, если вы делаете что-то вроде:
<?php
$x = 'filename';
?>
Теперь вы можете использовать егов вашей функции:
<?php
get_template_part($x);
?>
Итак, что Феликс говорит вам сделать, это поместить логику, которая у вас есть на данный момент, в функцию.В этом примере:
<?php
function foo()
{
return 'filename';
}
get_template_part(foo());
?>
Теперь любое значение foo()
будет отправлено на ваш get_template_part()
.
С вашим кодом:
$category = get_the_category();
$parent = get_cat_name($category[0]->category_parent);
if (!empty($parent)) {
$name = $parent;
} else {
$name = $category[0]->cat_name;
}
get_template_part($name);
Вы можетевозьмите ответ Феликса и поместите его в файл с именем category_parent.php
, а затем используйте его как:
require_once 'category_parent.php'
get_template_part(getName());