Php Can';t在WordPress帖子类型查询中更改每页帖子
我有一个名为“事件”的自定义帖子类型。帖子显示良好,只是WP查询循环只显示一篇帖子,而不是所有帖子。以下是my functions.php文件中有关事件的完整代码:Php Can';t在WordPress帖子类型查询中更改每页帖子,php,wordpress,Php,Wordpress,我有一个名为“事件”的自定义帖子类型。帖子显示良好,只是WP查询循环只显示一篇帖子,而不是所有帖子。以下是my functions.php文件中有关事件的完整代码: function min_get_events ( $echo = true ) { $events = new WP_query(array( 'post_type' => 'events', 'posts_per_page' => -1, 'order' => 'ASC
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;
}
}
函数min\u get\u事件($echo=true){
$events=新的WP\u查询(数组(
“post_类型”=>“事件”,
“每页帖子数”=>-1,
“订单”=>“ASC”,
'orderby'=>'meta_value',
“元密钥”=>“最小事件开始”,
“元查询”=>数组(
'键'=>'最小事件开始',
'值'=>日期('Y-m-d'),
“比较”=>“>”,
)
));
$i=0;
$n=1;
如果($events->have_posts()):
而($events->have_posts()):
全球$员额;
$events->the_post();
$open\u date=get\u post\u meta($post->ID,'min\u event-start',true);
$close\u date=get\u post\u meta($post->ID,'min\u event-end',true);
$start=strottime($open\u date);
$end=strottime($close\u date);
如果($start=$end | |$start>$end){
$date_string=date('fj,Y',$start);
}
否则{
$date_string=date('fj,Y',$start)。'&ndash;'.date('fj,Y',$end);
}
//$description=get\u post\u meta($post->ID,'event description',true);
$location=get\u post\u meta($post->ID,'min\u event-location',true);
$url=get\u post\u meta($post->ID,'min\u event-url',true);
//$registration\u url=get\u post\u meta($post->ID,'event registration url',true);
$cta\u text=get\u post\u meta($post->ID,'min\u event-cta-text',true);
$cta=!空($cta_text)?$cta_text:‘立即注册’;
$i++;
如果($i==1){
?>
你的元查询是错误的(这个错误很容易发生,我自己也犯过一次)。如果你在执行“元查询”,你必须在数组中创建数组,每个数组对应一个元参数。请参阅下面的代码:
$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' => '>',
))
));
有关Codex的更多信息:您的元查询错误(此错误很容易发生,我自己也犯过一次)。如果您要执行“元查询”,则必须在数组中创建数组,每个数组对应一个元参数。请参阅下面的代码:
$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' => '>',
))
));
关于Codex的更多信息:你是否尝试过var_dump(count($events->posts));
检查是否只有一个结果?你是否尝试过每999页的posts_?你确定有超过1篇符合你标准的帖子吗?我尝试过这些,它仍然只显示1篇post@blackam你是否尝试过var_dump(count($events->posts))
要检查是否只有一个结果?您是否尝试了第999页上的帖子?您确定有超过1篇帖子符合您的标准吗?我尝试了这些,它仍然只显示1篇帖子@BlackAmThank。我这样做了,但仍然只有1篇帖子显示了mm这很奇怪。请使用另一个元键尝试。尝试键入=>'numeric',尽管我认为是正确的日期不需要。检查主题/插件中的操作和过滤器。可能有什么东西会过滤输出?如果仍然不起作用,你可以使用$wpdb来查询帖子。谢谢。我这样做了,但仍然只有一篇帖子显示MM这很奇怪。尝试使用另一个元键。尝试键入=>'numeric',尽管我认为没有必要查看日期。检查主题/插件中的操作和过滤器。也许有什么东西可以过滤输出?如果仍然不起作用,你可以使用$wpdb来查询帖子。