Support

Account

Home Forums Front-end Issues Upcoming Events

Solved

Upcoming Events

  • Hi,
    I’m trying to show in a page upcoming events using a custom post type and acf datepicker, unfortunately my foreach show all posts and not only the upcoming ones (following my code).
    Can you tell me where I’m wrong? Thank you.

    <?php
    
                // get today's date
                $today = date( 'd-m-Y' );
    
                // get posts
                $futureposts = get_posts(array(
                    'post_type'         => 'eventi',
                    'posts_per_page'    => -1,
                    'meta_key'          => 'event_date_start',
                    'meta_value'        => date('d-m-Y'),
                    'orderby'           => 'meta_value',
                    'order'             => 'DESC',
                    'meta_compare'      => '>=',
                    'value'             => $today,
                    'type'              => 'DATE',
                ));
    
                if( $futureposts ): ?>
    
                    <ul class="events-list">
    
                    <?php foreach( $futureposts as $post ) : setup_postdata( $post ); ?>
    
                        <li>
                            <div class="entry-content">
                                <?php the_field( 'event_date_start' ); ?>
                                <?php if( get_field( 'event_date_end' ) ) :
                                    echo " - ";
                                    the_field( 'event_date_end' );
                                    endif; ?>
                                
                                <a href="<?php the_permalink(); ?>">
                                  <?php the_title(); ?>
                                </a>
    
                            </div>
                        </li>
    
                        <?php wp_reset_postdata(); ?>
    
                    <?php endforeach; ?>
    
                    </ul>
    
                <? else: ?>
    
                    <?php _e( 'No upcoming events are currently on the calendar.' ); ?>
    
                <?php endif; ?>
  • Worth looking at this forum post it may help you

  • I solved like this:

                <?php
    
                // get today's date
                $today = date( 'Y-m-d' );
    
                // get posts
                $futureposts = get_posts(array(
                  'post_type'   => 'eventi',
                  'meta_key' => 'event_date_start',
                  'posts_per_page' => -1,
                  'orderby' => 'meta_value_num',
                  'order' => 'ASC',
                  'meta_query'=> array(
                      array(
                        'key' => 'event_date_start',
                        'compare' => '>',
                        'value' => date("Y-m-d"),
                        'type' => 'DATE'
                      )
                  ),
              ));
    
                if( $futureposts ): ?>
    
                    <ul class="events-list">
    
                    <?php foreach( $futureposts as $post ) : setup_postdata( $post ); ?>
    
                        <li>
                            <div class="entry-content">
                                <?php the_field( 'event_date_start' ); ?>
                                <?php if( get_field( 'event_date_end' ) ) :
                                    echo " - ";
                                    the_field( 'event_date_end' );
                                    endif; ?>
                                <br />
                                <a href="<?php the_permalink(); ?>">
                                  <?php the_title(); ?>
                                </a>
    
                            </div>
                        </li>
    
                        <?php wp_reset_postdata(); ?>
    
                    <?php endforeach; ?>
    
                    </ul>
    
                <? else: ?>
    
                    <p><?php _e( 'No upcoming events are currently on the calendar.' ); ?></p>
    
                <?php endif; ?>
  • This script looks like it does exactly what I need–but I don’t know where to put it!

    Do I put it in functions.php and wrap it into a short code?

    –don

  • no that code is for template files such as page.php

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.