Я создал / изменил функцию отображения хлебных крошек на страницах WordPress.Модифицированная версия использует # post-> post_parent, чтобы получить родителя страницы, чтобы иметь полный след (домашняя страница> страница 1> страница 2> страница 3 против домашней страницы> страница 3)
Код отлично выполняется на странице (ie. home > page 1 > page 2 > page 3)
.Но когда я помещаю его в функцию и вызываю ее из страницы functions.php, он не может определить, есть ли у страницы родительский элемент, используя $ post-> post_parent (ie. page 3 vs. home > page 3)
.
. Может ли это быть из-за кода на странице?выполняется в the_loop, но функция каким-то образом находится за ее пределами?
На коде страницы:
if (!is_home()) {
echo "<ul id='breadcrumb'>";
echo '<li><a href="';
echo get_option('home');
echo '">HOME';
echo "</a></li>";
if (is_category() || is_single()) {
the_category('title_li=');
if (is_single()) {
the_title('<li>', '</li>');
echo "</ul>";
}
} elseif (is_page()) {
if(!$post->post_parent){
//echo "No Parent";
}
else{
echo '<li>'. wp_list_pages('include='.$post->post_parent.'&title_li=' ).'</li>';
}
the_title('<li>', '</li>');
echo "</ul>";
}
}
Код функции:
function the_breadcrumb() {
if (!is_home()) {
echo "<ul id='breadcrumb'>";
echo '<li><a href="';
echo get_option('home');
echo '">HOME';
echo "</a></li>";
if (is_category() || is_single()) {
the_category('title_li=');
if (is_single()) {
the_title('<li>', '</li>');
echo "</ul>";
}
} elseif (is_page()) {
if(!$post->post_parent){
//echo "No Parent";
}
else{
echo '<li>'. wp_list_pages('include='.$post->post_parent.'&title_li=' ).'</li>';
}
the_title('<li>', '</li>');
echo "</ul>";
}
}
}
В этом нет ничего особенногоэтот код за исключением того, что теперь он обернут в функцию.Тот факт, что он не отображает родительские страницы, разочаровывает.Я не хочу включать этот код в каждый созданный мной шаблон страницы.
Помощь и предложения будут с благодарностью приняты!