0

カスタム フィールドで並べ替えたい投稿があります... カスタム フィールドに Advanced Custom Fields プラグインを使用しています。これが私のコードです...投稿がstart_dayカスタムフィールドで順序付けられるように変更するのを手伝ってください...

 $today = date('Y-m-d');
    $cat = get_term_by('name', 'events', 'category');
    $args = array('cat' => $cat->term_id, 'posts_per_page' => -1, 'meta_query' => array(
        array(
            'key' => 'end_date',
            'value' => $today,
            'type' => 'DATE',
            'compare' => '>=',
            'meta_key' => '_date',
            "orderby" => "start_date",
            "order" => "ASC"
        )));

    $posts = get_posts($args);

    foreach($posts as $post) {
        setup_postdata($post);

        if((date("j", strtotime(get_field('start_date')))+1 || date("j", strtotime(get_field('start_date')))) !=date("j", strtotime(get_field('end_date')))){
        $data_info = date("F", strtotime(get_field('end_date')))." ".date("d", strtotime(get_field('start_date')))."-".
            date("d", strtotime(get_field('end_date')));
        }else{
            $data_info = date("F", strtotime(get_field('end_date')))." ".date("d", strtotime(get_field('start_date')));
        }
        ?><div class="fEventFront">
        <?php
        if (has_post_thumbnail($post->ID)):
        $thumbnail = wp_get_attachment_image_src ( get_post_thumbnail_id($post->ID), array(55,55));
        $full = wp_get_attachment_image_src ( get_post_thumbnail_id($post->ID), 'Large');
        ?>

        <div class="fEventFrontThumb">
            <img width="55" src="<?php echo $thumbnail[0];?>" alt=""/>
        </div>
        <?php endif; ?>
        <div class="fEventFrontText">
            <div class="fEventFrontTitle"><span class="date_info"><?php echo $data_info?> </span><?php the_title() ?></div>
            <div class="fEventFrontDescription"><?php the_field('short_description') ?></div>
        </div>
    </div><?php
    }
4

1 に答える 1

1

すでに引数の 1 つとして取得meta_keyしているため、orderby 引数を次のように変更する必要があります。

'orderby' => 'meta_value' 

Wordpress WP_Query orderby オプション

ただし、カスタム フィールドとして日付があるため、これは複雑になります (少なくとも、そうすると思います。質問では start_day と start_date の両方で言及しています)。

どのように行ったかによっては、最初にその日付を数値形式に変換し、次を使用して並べ替える必要がある場合があります。

'orderby' => 'meta_value_num' 
于 2012-08-18T13:16:14.990 に答える