Intereting Posts
Permalinks Question: Добавление префикса ТОЛЬКО к сообщениям Показать последние сообщения в категории с Twenty Ten theme widget Как получить только одну категорию сообщений «Портфолио» для отображения на главной странице, а не во всех категориях? Как получить мета значение в wp_attachment_metadata Проблема с созданием ссылки редактирования для настраиваемого типа сообщения Вставить после второго абзаца без тега <P>? Создание пользовательского плагина Glossary Работать вокруг для условных проверок внутри цикла в search.php? Регистрация пользователя на двух сайтах в одном и том же мультисайте ACF – Как установить порядок меню для поля отношений Является динамичным веб-сайтом с большим количеством URL-адресов с wordpress Работает ли add_filter вне функций functions.php Отображение определенных основных файлов Sub Nav на страницах Woocommerce Как поместить последнюю отредактированную запись в верхней части списка блога? Найдите «Дети страницы», затем «Echo it» как «Маркированный список ссылок» (меню)

Не удается получить объект бабушки и дедушки

Я использую следующий код, чтобы получить идентификатор дедушки и прародителя текущей страницы:

<?php $current = get_post($post->ID); $grandparent = $current->post_parent; $greatGrandparent = $grandparent->post_parent; ?> <h2>$current: <?php echo $current->ID; ?></h2> <h2>$grandparent: <?php echo $grandparent->ID; ?></h2> <h2>$greatGrandparent: <?php echo $greatGrandparent->ID; ?></h2> 

Однако, когда я пытаюсь повторить их, я получаю только значение текущей страницы:

$ current: 335

$ прародитель

$ GreatGrandparent:

Я уверен, что просматриваю страницу, на самом деле имеющую большие / дедушкиные страницы … может ли кто-нибудь увидеть, что я делаю неправильно?

Solutions Collecting From Web of "Не удается получить объект бабушки и дедушки"

просто небольшая ошибка. Чтобы получить объекты родителя и дедушки, вам также нужно get_post. Свойство «post_parent» дает только идентификатор этого сообщения, а не самого post_object.

Таким образом, вы меняете свой код следующим образом:

 <?php $current = get_post($post->ID); //Conditional to be sure there is a parent if($current->post_parent){ $grandparent = get_post($current->post_parent); //conditional to be sure there is a greatgrandparent if($grandparent->post_parent){ $greatGrandparent = get_post($grandparent->post_parent); } } ?> <h2>$current: <?php echo $current->ID; ?></h2> <?php if($grandparent){ ?> <h2>$grandparent: <?php echo $grandparent->ID; ?></h2> <?php if($greatGrandparent){ ?> <h2>$greatGrandparent: <?php echo $greatGrandparent->ID; ?></h2> <?php } } ?> 

И все в порядке!