![](/img/trans.png)
[英]WP_Query and posts_per_page from shortcode only returning one post (WordPress)
[英]Can't change posts per page in WordPress Post Type Query
我有一个称为“事件”的自定义帖子类型。 该帖子显示正常,除了WP Query循环仅显示一个帖子而不是全部。 这是我的functions.php文件中用于事件的完整代码:
function min_get_events ( $echo = true ) {
$events = new WP_query(array(
'post_type' => 'events',
'posts_per_page' => -1,
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_key' => 'min_event-start',
'meta_query' => array(
'key' => 'min_event-start',
'value' => date('Y-m-d'),
'compare' => '>',
)
));
$i = 0;
$n = 1;
if ( $events->have_posts() ) :
while ( $events->have_posts() ):
global $post;
$events->the_post();
$open_date = get_post_meta($post->ID, 'min_event-start', true);
$close_date = get_post_meta($post->ID, 'min_event-end', true);
$start = strtotime($open_date);
$end = strtotime($close_date);
if ($start==$end || $start > $end) {
$date_string = date('F j, Y', $start);
}
else {
$date_string = date('F j, Y', $start) .' – '. date('F j, Y', $end);
}
//$description = get_post_meta($post->ID, 'event-description', true);
$location = get_post_meta($post->ID, 'min_event-location', true);
$url = get_post_meta($post->ID, 'min_event-url', true);
//$registration_url = get_post_meta($post->ID, 'event-registration-url', true);
$cta_text = get_post_meta($post->ID, 'min_event-cta-text', true);
$cta = !empty($cta_text) ? $cta_text : 'Register Now';
$i++;
if ( $i == 1 ) {
?>
<div class="row">
<?php
}
?>
<div class="event col-sm-4">
<a href="<?= $url ?>">
<?php the_post_thumbnail('thumb-events'); ?>
</a>
<h1><?= htmlentities($post->post_title) ?></h1>
<div >
<div><?= $date_string; ?></div>
<div><?= htmlentities($location) ?></div>
<div><a href="<?=$url;?>" class="register-now"><?= $cta; ?></a></div>
</div>
<!-- <p><?= $description ?></p> -->
<!-- <p><a href="<?=$url;?>" class="register-now"><?= $cta; ?></a></p> -->
</div> <!-- .event -->
<?php
if ( $i == 3 || ($events->current_post +1) == $events->post_count) {
?>
</div> <!-- <?php echo $i; ?> .row <?php echo $n; ?> -->
<?php
$i = 0;
$n++;
}
endwhile;
endif;
ob_start();
?>
<?php
$return = ob_get_contents();
ob_end_clean();
wp_reset_postdata();
if ( $echo ) {
echo $return;
} else {
return $return;
}
}
我在这里想念什么吗?
您的元查询是错误的(此错误很容易发生,我自己做了一次)。 如果您正在执行“ meta_query”,则必须在数组内部创建数组,每个数组用于一个meta参数。 参见下面的代码:
$events = new WP_query(array(
'post_type' => 'events',
'posts_per_page' => -1,
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_key' => 'min_event-start',
'meta_query' => array( array(
'key' => 'min_event-start',
'value' => date('Y-m-d'),
'compare' => '>',
))
));
有关食典的更多信息: https : //codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.