2014-01-07 4 views
3

Я пытаюсь отобразить случайные дочерние страницы родительской страницы, но я получаю случайные записи, которые я не хочу включать в область отображения.Как отображать случайные дочерние страницы родительской страницы в Wordpress?

$my_query = new WP_Query(array ('orderby' => 'rand', 'posts_per_page' => '1', 'pagename=guide')); 

Итак, что я хочу, чтобы отобразить случайные дочерние страницы родительской страницы, которые пробковое руководство, но вместо этого я получаю случайные сообщения, которые довольно сильно отличаются от того, что я хочу. Любая помощь будет оценена по достоинству. Спасибо :)

+0

http://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters вы хотите использовать 'post_parent = ' вместо имени страницы = руководства Я думаю, – EdgeCaseBerg

+0

Это не работает тоже :( – user3166421

+0

Он покажет тот же результат, который был показан до – user3166421

ответ

4

Это работает для меня. post_type является важной частью, поскольку в противном случае WP не будет запрашивать страницы. Post_parent должен быть целым идентификатором вашей страницы.

$query = new WP_Query(array('orderby' => 'rand', 'posts_per_page' => 1, 'post_type' => 'page', 'post_parent' => '2')) ; 
if ($query->have_posts()) { 
     echo '<ul>'; 
    while ($query->have_posts()) { 
     $query->the_post(); 
     echo '<li>' . get_the_title() . '</li>'; 
    } 
     echo '</ul>'; 
} else { 
    // no posts found 
} 
+0

Спасибо большое :), который тоже работал на меня – user3166421

0

Это работает для меня:

$my_wp_query = new WP_Query(); // Setup query object 
$all_wp_pages = $my_wp_query->query(array('post_type' => 'page')); // Get all pages 
$children = get_page_children(get_the_id(), $all_wp_pages); // Get the children pages from list of all pages 
$rand = rand(0, (count($children) - 1)); // Count children and get a random number from that range 
print_r($children[$rand]); // Print random child object 

Надеется, что это помогает!

Смежные вопросы