Intereting Posts
PHP-код для использования в следующих и предыдущих ссылках Автоматическое извлечение изображения YouTube для миниатюр? Как я могу настроить возможности WordPress list_users? Автоматически помечать сообщения на основе пользовательских слов Невозможно загрузить выбранное изображение в пользовательский тип сообщения. WordPress Media Library – как «uncache» изображения Помощь с пользовательским переписанием Правильное регулярное выражение для wp_embed_register_handler Нужна помощь при добавлении шаблонов (архивов и файлов Sitemap) в тему WordPress для детей Есть ли способ через файл .htaccess добавить '' / amp 'в конец URL-адреса для сайта AMP? Могу ли я получить все опции, используя идентификатор группы опций? Как использовать функцию WP switchEditors.switchto (this) JS в вашем собственном скрипте? Использование add_sub_menu для размещения в разделе «Внешний вид» Можно ли изменить суффикс имени имени изображения по умолчанию? Как заказать несколько пользовательских полей с помощью wp_query?

Доступ к 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() .