2010-01-13 1 views
2

У меня есть страница в Wordpress, которая заполняет записи в определенной категории. В sidebar.php я хочу получить список вспомогательных страниц и отобразить их как меню. Однако при использовании get_the_ID() или $ post-> ID он возвращает идентификатор последнего сообщения, которое было зациклировано, а не страницы.Как получить идентификатор страницы wordpress после зацикливания сообщений?

Как получить идентификатор страницы в боковой панели после того, как у меня есть записи на странице?

ответ

1

Если вы используете шаблон страницы, вы должны сделать следующие вещи:

  1. Создать глобальную переменную в верхней части шаблона страницы (который я предполагаю, что вы используете)
  2. Получить идентификатор запрашиваемого объекта и присвоить его этой переменной
  3. Globalize переменную в вашем файле sidebar.php
  4. использовать переменную в get_posts или query_posts функции для отображения дочерних страниц (правильный параметр, чтобы использовать это post_parent)

Итак, поместите это в верхней части шаблона страницы:

<?php 
global $xyz_queried_object_id, $wp_query; 
$xyz_queried_object_id = $wp_query->get_queried_object_id(); 
?> 

А затем поместить его в боковой панели:

<h2><?php _e('Subpages') ?></h2> 
<ul> 
    <?php 
    global $xyz_queried_object_id; 
    $subpages = new WP_Query(array('post_type'=>'page','post_parent'=>$xyz_queried_object_id)); 
    while($subpages->have_posts()) { 
     $subpages->the_post(); 
     ?> 
     <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 
     <?php 
    } 
    ?> 
</ul> 

Это должно получить вас, что вы хотите.

+0

Не уверен, почему я не думал, что это глобальная переменная для запросов к сообщениям. Благодаря! Работала отлично. – Kristopher

2

Я сделал это так: получить переменную WP_Query в вас объем:

global $wp_query; 

затем

$wp_query->post->ID 

ваш PageId, знайте, что это может быть сообщения дан , когда вы» re на главной странице.