Список событий на странице архива с пользовательским типом записи - PullRequest
0 голосов
/ 13 февраля 2019

Я использую Wordpress.Я хотел бы отобразить предстоящие события, которые являются сообщениями в пользовательском шаблоне типа сообщения (posttype-archive.php).Я хочу сравнить настраиваемое поле с отметкой времени Unix с текущей отметкой времени.Каким-то образом он всегда перечисляет все сообщения из этого определенного пользовательского типа сообщения.

<?php
$today = time();

//First Query for Posts matching term1
$args = array(
    'post_type' => 'exhibitions',
    'relation' => 'AND',
    'meta_query'    => array(  
                   'key'     => 'start_date',  
                   'value'   => $today, 
                   'compare' => '>=',  
                   'type'    => 'NUMERIC'
              )

);
$query = new WP_Query( $args );



if ( have_posts() ) {


    $term = $query->queried_object;

    while ( have_posts() ) : the_post(); ?>

    <?php  ?>

    <?php print_r ($args); ?>

    <div class="auss_left">
        <h2><?php echo rwmb_meta( 'gastgeberin' ); ?><br />
        <?php the_title(); ?></h2>

        <?php 
        $date =rwmb_meta( 'Date' );
        if (!$date){
        echo rwmb_meta( 'start_date' ); ?> - <?php echo rwmb_meta( 'end_date' ); 
        }
        ?>

        <?php if ($date){
            echo rwmb_meta( 'Date' ); 
        } ?>


        <?php echo rwmb_meta( 'Ort' ); ?>
        <?php echo rwmb_meta( 'Adresse' ); ?>

        <?php echo rwmb_meta( 'Karte' ); ?>

        Öffnungszeiten:<br/>
        <?php echo rwmb_meta( 'oeffnungszeiten' ); ?>

        Vernissage:<br/>
        <?php echo rwmb_meta( 'vernissage' ); ?>


    </div>

    <div class="auss_right">
        <?php the_content(); ?>
    </div>


        <?php endwhile;
}

//RESET YOUR QUERY VARS
wp_reset_query();

 ?>

Я ожидаю, что этот запрос WP перечисляет только предстоящие события, но всегда перечисляет все события.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Я нашел решение: https://wordpress.stackexchange.com/questions/313355/use-meta-query-to-display-events-by-date-in-custom-field

Я сделал это так, и это сработало, я думаю, что это было просто различием структуры массива, и я использовал формат ГГГГ-ММ-ДД.

0 голосов
/ 13 февраля 2019

Вы создаете пользовательский WP_Query, но нигде не используете его.Попробуйте вместо этого:

<?php
$today = time();

//First Query for Posts matching term1
$args = array(
    'post_type'  => 'exhibitions',
    'relation'   => 'AND',
    'meta_query' => array(
        array(
            'key'     => 'start_date',
            'value'   => $today,
            'compare' => '>=',
            'type'    => 'NUMERIC',
        ),
    ),
);

$events_query = new WP_Query( $args );

if ( $events_query->have_posts() ) :
    while ( $events_query->have_posts() ) : $events_query->the_post(); ?>
        <div class="auss_left">
            <h2>
                <?php echo rwmb_meta( 'gastgeberin' ); ?>

                <br />

                <?php the_title(); ?>
            </h2>

            <?php
            $date = rwmb_meta( 'Date' );
            if ( ! $date ) {
                echo rwmb_meta( 'start_date' ); ?> - <?php echo rwmb_meta( 'end_date' );
            } else {
                echo rwmb_meta( 'Date' );
            }

            echo rwmb_meta( 'Ort' );

            echo rwmb_meta( 'Adresse' );

            echo rwmb_meta( 'Karte' );
            ?>

            Öffnungszeiten:<br/>

            <?php echo rwmb_meta( 'oeffnungszeiten' ); ?>

            Vernissage:<br/>

            <?php echo rwmb_meta( 'vernissage' ); ?>
        </div><!-- /.auss_left -->

        <div class="auss_right">
            <?php the_content(); ?>
        </div><!-- /.auss_right -->
    <?php endwhile;
endif;

//RESET YOUR QUERY VARS
wp_reset_postdata();

Также, как упоминалось @jposedasilva, вам следует дважды проверить, является ли значение, хранимое для мета-ключа start_date, целочисленным.

...