$wp_query

var_dump($wp_query) – wyświetla wszystko

$wp_query->post_count – liczba postów

 

pobranie custom post event w kolejności daty rozpoczęcia z wykluczeniem wydarzeń których data końcowa już minęła w function.php:


function get_events_posts()
{
	$args = array(
		'post_type' => 'event',
		'meta_key'			=> 'start',
		'orderby'			=> 'meta_value',
		'order'				=> 'ASC',
		'posts_per_page' => 4,
		'meta_query' => array(
        array(
            'key' => 'end',
            'value' => date('Y-m-d'),
            'compare' => '>=',
            'type' => 'DATE'
        )
    ),
	);
	// The Query
	$queryEvents = new WP_Query($args);
	return $queryEvents;
}

w kodzie strony zamieszczamy:


					<?php $query = get_events_posts(); ?>
					<?php if ( $query->have_posts() ) : ?>
						<?php while ( $query->have_posts() ) : $query->the_post(); ?>

<div class="home-box-events-pic-output">
								<?php if ( has_post_thumbnail() ) : the_post_thumbnail('event-image'); ?>
								<?php endif; ?>
							</div>

						<?php endwhile; ?>
					<?php endif; wp_reset_postdata(); ?>

lub kiedy chcielibyśmy zawęzić obszar wyświetlanych eventów do konkretnego zakresu:


$start = '2011-11-31';
$end = '2011-10-01';
$args = array(
    'post_type' => 'events',
    'posts_per_page' => -1,
    'orderby' => 'meta_value',
    'order' => 'ASC',
    'meta_key' => '_my-datetime-from',
    'meta_query' => array(
        array(
            'key' => '_my-datetime-from',
            'value' => array($start, $end),
            'compare' => 'BETWEEN',
            'type' => 'DATE'
        )
    )
);
// Make the query
$events_query = new WP_query();
$events_query->query($args);

funkcja do zawężania $query

function if_adjust_queries($query) {
  if ( !is_admin() && is_post_type_archive('event') && $query->is_main_query() ) {
    $query->set('posts_per_page', '1');
  }
}
add_action('pre_get_posts', 'if_adjust_queries');

Wykaz z postami powiązanymi (related post ACF) z uwzględnieniem daty eventów:

$today = date('Ymd');
$relatedEvents = new WP_Query(array(
  'posts_per_page' => -1,
  'post_type' => 'event',
  'meta_key' => 'event_date',
  'orderby' => 'meta_value',
  'order' => 'ASC',
  'meta_query' => array(
    array(
      'key' => 'event_date',
      'compare' => '>=',
      'value' => $today,
      'type' => 'numeric'
    ),
    array(
      'key' => 'related_programs',
      'compare' => 'LIKE',
      'value' => '"' . get_the_ID() . '"',
    )
  )
));

while ( $relatedEvents->have_posts() ) {
  $relatedEvents->the_post(); ?>
  <li><h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2></li>
<?php }
wp_reset_postdata(); ?>

'post__not_in’ => array($donotrepeat),