繁体   English   中英

无法在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM