第2页上的自定义查询结果为空

时间:2020-04-29 作者:kristof

我正在尝试筛选自定义查询的分页结果。我有4篇帖子,每页3篇,总共2页。当我在第1页应用过滤器时,它会起作用。当我在第2页应用过滤器时,查询结果为空。

我的猜测是,要么查询不知道我在哪个页面上,要么我的表单action=“错误”。有什么提示吗?

<div class="row justify-content-md-center">
    <div class="col-9 m-4 pt-4 pb-4">
        <form action="" method="get">
            <label>Select option</label>
            <select name="filter_options">
                <option value="">Any</option>
                <option value="800">800</option>
                <option value="1200">1200</option>
            </select>
            <button type="submit" class="btn btn-primary">Filter</button>
        </form>
    </div>
</div>

<div class="row justify-content-md-center">
<?php
     $currentPage = get_query_var( \'paged\', 1 );

     if (array_key_exists(\'filter_options\', $_GET)) {
          $value = $_GET[\'filter_options\'];
          $args = array(
              \'post_type\'=> \'my_custom_type\',
              \'paged\' => $currentPage,
              \'posts_per_page\'=>3,
              \'meta_query\' => array(
                  \'relation\' => \'OR\',
                   array(
                        \'meta_key\' => \'my_meta_key\',
                        \'value\' => $value)
                    )
                );
     } else {
          $args = array(
             \'post_type\'=> \'my_custom_type\',
             \'paged\' => $currentPage,
             \'posts_per_page\'=>3
          );
    }

    $posts = new WP_Query($args);

    if ($posts->have_posts()) {
        while ($posts->have_posts()) {
            $posts->the_post();
            get_template_part( \'/template-parts/content\', \'filters\');
        }
    }
    wp_reset_query();
?>
</div>

<div class="row justify-content-md-center mt-5">    
    <div class="col-2">
            <?php echo paginate_links(array(
                \'total\' => $posts->max_num_pages,
                \'prev_text\' => \'Prev\',
                \'next_text\' => \'Next\'
            )); ?>
    </div>
</div>

1 个回复
SO网友:kristof

这是一个自定义动态页面,仅用于此特定查询结果。问题是表单操作“”为空$_获取参数被发送到同一页,即/结果页/?过滤器选项=800,这很好,但在第2页时,结果被发送到/结果页/第2页/?过滤器选项=800。

设置表单操作=“/结果页”解决了问题。谢谢

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post