Php Can';t在WordPress帖子类型查询中更改每页帖子

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

我有一个名为“事件”的自定义帖子类型。帖子显示良好,只是WP查询循环只显示一篇帖子,而不是所有帖子。以下是my 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;
}
 }
函数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来查询帖子。