Intereting Posts
Проблемы с перенаправлением сети Изотоп с бесконечным свитком Как добавить атрибуты data-toggle = "modal" data-target = "# myModal" в панель WP Nav? Как изменить структуру permalink без получения 404? Как добавить вложенные категории в раскрывающееся меню в двадцать одиннадцать? wp_get_archives нарушает проверку Html5 Потребительский ходячий помощник нуждается в улучшении Создайте пользовательскую роль (клиент), которая может создать другую пользовательскую роль (сотрудника) этого клиента Загрузка PDF-файла клиента (Каталог) – Автоматическое обновление ссылки в PDF-формате Я установил WP в localhost с помощью xampp. Мои новые страницы перенаправляются на localhost / xampp. Что мне делать? URL-адрес wp-admin не позволяет войти и перенаправить на ту же страницу Несколько конечных точек на одной странице Те же комментарии ко всем сообщениям wp.svgPainter не может инициировать ошибку, вызывая проблемы с панелью администратора Функции для вызова определенных элементов

Доступ к post-> ID за пределами цикла для перечисления дочерних страниц

Я хочу перечислить дочерние страницы моей текущей страницы на боковой панели темы. Однако моя боковая панель (слева) находится перед циклом в шаблоне, а post-> ID ничего не вернет, если это до цикла.

Мой текущий код:

<?php wp_list_pages('title_li=&child_of='.$post->ID); ?> 

Я прочитал кое-что о вызове глобальной переменной, чтобы получить доступ к этому, но до сих пор не повезло.

Любая помощь будет оценена по достоинству.

Solutions Collecting From Web of "Доступ к post-> ID за пределами цикла для перечисления дочерних страниц"

… post-> ID ничего не вернет, если это до цикла

Вообще говоря, это неверно. Переменная $post устанавливается до начала цикла в вашей теме для большинства страниц. Основной запрос «пронумерует» эту переменную для первого сообщения в Loop. Тем не менее, в зависимости от этой переменной вне Loop не самый надежный подход. Более надежным было бы использовать get_queried_object .

 $qobj = get_queried_object(); wp_list_pages('title_li=&child_of='.$qobj->ID); 

Поскольку get_queried_object возвращает различную информацию в зависимости от страницы, на которой вы находитесь, вам также лучше проверить тип страницы перед ее использованием.

 if (is_page()) { $qobj = get_queried_object(); wp_list_pages('title_li=&child_of='.$qobj->ID); } 

Или проверьте сам объект.

 $qobj = get_queried_object(); if (isset($qobj->post_type) && 'page' == $qobj->post_type) { wp_list_pages('title_li=&child_of='.$qobj->ID); } 

Это просто примеры. Я не знаю, каковы ваши точные условия.

Попробуй это:

 // get the post id $post_id = get_queried_object_id(); // get the children $children = get_pages('child_of' => $post_id); //output them if( count( $children ) != 0 ) { echo "<ul>"; foreach ($children as $child) { // if we only want children, not grandchildren if ($child->post_parent == $post_id) { echo "<li><a href=\"" . get_permalink($child->ID) . "\">"; echo $child->post_title; echo "</a></li>"; } } echo "</ul>"; } 

попробуйте сделать код наподобие

 global $post; var_dump($post);//test values in $post wp_list_pages('title_li=&child_of='.$post->ID); 

На самом деле информации недостаточно для точного ответа здесь, но если ваше подозрение правильное, попробуйте заменить $post->ID get_the_ID() .