0

作業中のカスタム Wordpress / ACF ループに問題があります。

アイデアは、「イベント」投稿タイプ内の最新の投稿を表示し、イベント日付が過ぎた投稿を非表示にすることです。

日付が過ぎると、投稿は非表示になります。ただし、ループは利用可能な投稿の全量を表示していません。現在、以下のループでは、利用可能な 10 個のうち 6 個しか表示されていません。

Wordpress の読み取り設定を確認しましたが、問題ありません。

ループに使用しているコードは次のとおりです。

<ul class="events-list">

<?php 
    $loop = new WP_Query( array( 
        'post_type' => 'events',
        'posts_per_page' => -1,
        'orderby' => 'meta_value',
        'order' => 'ASC',
        'meta_type' => 'DATE',
        'meta_key' => 'event-date'
    ));

    while ( $loop->have_posts() ) : $loop->the_post(); 

    $today = date('dmY');
    $expire = get_field('event-date');

    if( $expire > $today )

{ ?>

    <li>
        <h3><?php the_field('event-date'); ?> - <?php the_title(); ?></h3>
        <span class="time"><?php the_field('event-time'); ?></span>
        <?php the_field('event-details'); ?>
    </li>

<?php; } endwhile; wp_reset_query(); ?>

</ul>
4

3 に答える 3

0

日付を比較する場合は、適切な型に変換する必要があります。それらをUnixタイムスタンプに変換すると、日付がいつ過ぎたかを簡単に比較できます。現時点では、どちらの文字列が他の文字列よりも大きいかを比較していますが、これは時々機能しますが、日付形式が常に一致する必要があるため、Unix タイムスタンプを使用する方がはるかに信頼性が高くなります。

if(strtotime(get_field('event-date')) > date('U')) {
    //Your code here
}
于 2017-11-19T13:51:20.937 に答える