Плагин ACF Wordpress - поле сортировки по дате

Я использую плагин Advanced custom Fields для создания даты события в сообщении. Я хочу упорядочить свои сообщения по этой дате, а также показывать только сообщения из одной категории. Я следил за документацией на их сайте, касающейся поля даты, но это не работает - он отображает сообщения из всех категорий, и они упорядочены по дате публикации, а не по дате события. документация находится здесь: http://www.advancedcustomfields.com/resources/field-types/date-picker/ Я не менял форматирование даты по умолчанию. Кто-нибудь знаком с этим плагином? Может быть, у меня неправильный код цикла? Я заметил, что в документации используется более простая структура foreach, а не query_posts и while one.

/*
*  Order Posts based on Date Picker value
*  this example expects the value to be saved in the format: yymmdd (JS) = Ymd (PHP)
*/

$posts = get_posts(array(
    'meta_key' => 'event_date', // name of custom field
    'orderby' => 'meta_value_num',
    'order' => 'ASC',
    'cat' => '23'

));?>

    <?php if (query_posts($posts)) : while (have_posts()) : the_post(); ?>

        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">

            <div class="entry">
                <?php the_post_thumbnail( 'whatson-thumb' ); ?>
                <h2 class="pagetitle"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
                <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
                <?php the_excerpt(); ?> 

            </div>
        </div>

    <?php endwhile; ?>
    <?php wp_reset_postdata(); ?>
    <?php else : ?>
        <h2>Not Found</h2>
    <?php endif; ?>

person yennefer    schedule 26.04.2014    source источник
comment
если убрать строку 'cat' => '23', правильно ли она упорядочена? Я бы использовал их точную логику, чтобы убедиться, что это работает. Оттуда гораздо проще устранить неполадки.   -  person Sam Miller    schedule 27.04.2014


Ответы (1)


Ваш код работает некорректно, потому что он использует функции get_posts() и query_posts(). Однако для вашего пользовательского запроса я предлагаю использовать объект WP_Query (подробнее см. Codex).

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

<?php
$args = array(
   'meta_key' => 'event_date', // name of custom field
   'orderby' => 'meta_value_num',
   'order' => 'ASC',
   'cat' => '23' 
);
$event_query = new WP_Query( $args );

// The Loop
if ( $event_query->have_posts() ) {

     while ( $event_query->have_posts() ) {
        $event_query->the_post(); ?>

        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">

        <div class="entry">
            <?php the_post_thumbnail( 'whatson-thumb' ); ?>
            <h2 class="pagetitle">
                <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
            </h2>
            <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
            <?php the_excerpt(); ?> 
        </div>

        </div>
    <?php
    }

}else{
    echo '<h2>Not Found</h2>';
}

// Restore original Post Data
wp_reset_postdata();
?>
person andreivictor    schedule 27.04.2014