webentwicklung-frage-antwort-db.com.de

Nur anstehende oder aktuelle Ereignisse anzeigen

Ich habe an dieser Website-Ereignisseite gearbeitet

http://aishaarab.com/events/

alles funktioniert aber ich habe 2 probleme:

  1. Ich kann es nicht dazu bringen, nur das bevorstehende Ereignis anzuzeigen, was bedeutet, dass ein Ereignis vergangen ist, um es nicht zu beschlagen oder nicht anzuzeigen.
  2. Wenn ich das post_meta auf meiner Seite mit <?php meta('event-end-date'); ?> ausgebe, ist mein Ergebnisformat 08-12-2014. Ich möchte, dass der Monat Buchstaben wie dieser 12. August 2014 ist.

hier ist Code:

<ul class="event_list_view">    

<?php // Let's get the data we need to loop through below
//$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$d = date("m-d-Y");
$today = date('Y-m-d', strtotime('-6 hours')); //define "today" format; note timezone offset of -6 hours
$args = array(
    'post_type' => 'event',
    'posts_per_page' => '3',
    'post_status'  =>  'publish',
    'meta_key' => 'event-start-date',
    'orderby' => 'meta_value_num',
    'order' => 'ASC',
    'meta_query' => array(
    'relation'  =>   'AND',
    array(
            'key' => 'event-end-date',
         'meta-value' => date('Y-m-d', strtotime('-6 hours')), //value of "order-date" custom field
         'compare' => '>=', //show events greater than or equal to today
         'type' => 'CHAR'
        )
    )
);
$the_query = new WP_Query( $args ); ?>


<?php if ( $the_query->have_posts() ) : ?>

    <!-- pagination here -->

    <!-- the loop -->
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>





<li class="clearfix">
<div class="featured_tag"></div>


<?php if ( '' != get_the_post_thumbnail() ) { ?>
<a class="post_img" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_post_thumbnail('event-thumbnail'); ?>
</a>
<?php } else { ?>
<a class="post_img" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<img src="http://aishaarab.com/wp-content/uploads/2014/08/DefaultEvent-125x75.png" alt="" />
</a>
<?php } ?>

<h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>

<p class="timing"> 
<span>Start Date: </span><?php meta('event-start-date'); ?><br>
<span>End Date: </span><?php meta('event-end-date'); ?><br>
<span>Time: </span><?php meta('event_time'); ?><br>
</p>

<p class="address"><span>Location :</span> <br><?php meta('event_address'); ?>, <?php meta('event_city'); ?>, <?php meta('event_state'); ?>, <?php meta('event_country'); ?></p>
<div class="clear"></div>
<p class="bottom">
<a class="read_more" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">Read More</a>
</p>

</li>


    <!-- #post-<?php the_ID(); ?> -->

     <?php endwhile; else: ?>  
      <p> 
        <?php _e('Sorry, no events matched your criteria.'); ?>  
      </p>  
      <?php endif; ?> <?php //wp_reset_query(); ?>


</ul>
1
frenchy black

sie vergleichen die Zeit mit der falschen Zeitfolge:

veränderung:

'meta-value' => date('Y-m-d', strtotime('-6 hours')), //value of "order-date"

dazu

'value' => date('m-d-Y', strtotime('-6 hours')), //value of "order-date"

weil Ihr Zeitstring im m-d-Y-Format ist und Sie gegen Y-m-d prüfen, was falsch ist.

NOTE

wenn der obige Trick nicht funktioniert, empfehle ich Ihnen, die Zeit im Unix-Zeitstempel in der Datenbank zu speichern. Bitte lesen Sie diese Links für weitere Informationen, wie es geht und warum

  1. https://designhammer.com/blog/sorting-events-date-using-wordpress-custom-post-types
  2. http://www.billerickson.net/code/create-a-unix-timestamp-based-on-two-meta-fields/
1
Ravinder Kumar