2017-01-06 2 views
0

Я пытаюсь перечислить дочерние страницы текущей страницы с последним первым, но я могу получить ее только в алфавитном порядке. Настройка orderby не имеет никакого значения.Wordpress orderby child pages

<?php 
global $post; 
$currentPage = $post->ID; 
// Get posts (tweak args as needed) 
$args = array(
     'child_of' => $currentPage, 
     'post_type' => 'page', 
     'orderby' => 'date', 
     'order' => 'ASC' 
    ); 
    $posts = get_pages($args); 
    foreach (array_chunk($posts, 1, true) as $posts) : ?> 
    <?php foreach($posts as $post) : setup_postdata($post); ?> 
     <?php $img = wp_get_attachment_image_src(get_post_meta($post->ID, 'image_or_video', true)); ?> 
     <?php $video = get_post_meta($post->ID, 'embedded_video', true); ?> 
     <?php $alt_text_for_logo = get_post_meta($post->ID, 'article_name', true); ?> 
     <?php $short_description = get_post_meta($post->ID, 'article_short_description', true); ?> 
     <?php if($img || $video): ?> 
     <div class="column small-4 medium-4 large-4 card white margin-bottom"> 
      <div> 
       <a href="<?php the_permalink(); ?>"> 
        <?php if($img): ?> 
         <img src="<?php echo $img[0]; ?>" alt="<?php echo $alt_text_for_logo; ?>" /> 
        <?php endif; ?> 
        <?php if($video): ?> 
         <?php the_field('embedded_video'); ?> 
        <?php endif; ?> 
        <h4><?php the_title(); ?></h4> 
        <p><?php the_field('article_short_description'); ?></p> 
        <p class="tag"><?php echo get_the_title($post->post_parent); ?></p> 
       </a> 
      </div> 
     </div> 
    <?php endif; ?> 
<?php endforeach; ?> 

ответ

0

Согласно документации page, вы должны использовать:

'sort_order' => 'asc', 'sort_column' => 'date',

0

Попробуйте

Удалить 'orderby' => 'rand', и сделать 'order' => 'DESC', которые должны решить вашу проблему.

поэтому аргумент $ арг будет

$args = array(
    'child_of' => $currentPage, 
    'post_type' => 'page', 
    'orderby' => 'ID' 
    'order'  => 'DESC' 
); 

или вы можете использовать POST_DATE

$args = array(
    'child_of' => $currentPage, 
    'post_type' => 'page', 
    'orderby' => 'post_date', 
    'order'  => 'DESC' 
); 
+0

Привет, Я попробовал orderby date, но он не работал, поэтому я попробовал rand, чтобы быть уверенным. –

+0

@RReveley вы проверили codex это 'date' или' post_date'? –

1

набор sort_order к убывание и sort_column к ID

$args = array(
     'child_of' => $currentPage, 
     'post_type' => 'page', 
     'sort_column' => 'ID', 
     'sort_order' => 'desc' 
    );