重新发布到页面时是否将用户发送到结果的第一页?

时间:2012-11-21 作者:montrealist

我有一个带有下拉列表的自定义模板,可以按类别过滤帖子。我通过将表单发布到页面本身,然后捕获参数并在查询中使用它来实现这一点(请参见下面的代码)。

令人沮丧的是:如果您导航到第2页(例如),并且then 使用筛选器,URL仍然包含/page/2/ 位,如果结果少于一页的值,您有时会看到零篇帖子,因为新结果都在第1页,而您被困在第2页。已尝试取消设置分页变量,但无效。如何在用户每次使用过滤器时将其发送回首页?

<form action="" method="POST">
    <fieldset>
        <select id="food-type" name="food_type" class="selectBox">
            <option value="0">Select One:</option>
            <option value="meat">Meat</option>
            <option value="salads">Salads</option>
            <option value="vegetarian-entrees">Vegetarian Entrees</option>
        </select>
        <button type="submit" class="search">Search</button>
    </fieldset>
</form>
我将其内容处理如下:

global $post;
global $query_string;

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

$args = array(
    \'post_status\'      => \'publish\',
    \'post_type\'        => \'recipe\',
    \'suppress_filters\' => false,
    \'paged\'   => $paged
);

if(isset($_POST[\'select_food_type\']) && !empty($_POST[\'select_food_type\']) ) {
    $args[\'food_type\'] = $_POST[\'select_food_type\'];
    unset($args[\'paged\']);
}
query_posts($args);

2 个回复
最合适的回答,由SO网友:Steve 整理而成

也许可以将表单的操作设置为指向分页结果的第一页,而不是当前页面的默认值(空)。

<form action="_URL_to_first_page_" method="POST">
请记住,如果是空操作,URL是在客户端确定的。

SO网友:montrealist

这是解决方案。确保表单每次都发布到正确的页面,而不是发布到当前URL。

<form action="<?php echo get_permalink(); ?>" method="POST">

结束

相关推荐

Gallery Pagination by Row

我在以下位置创建了一个图片库:http://ellenandjosh.com/?page_id=5. 目前,我有一个循环,在一定数量的图像之后显示分页:http://pastebin.com/N6nRRUei.通常情况下,这很好。。。但通常我没有不同宽度的图像。WordPress按高度裁剪图像,宽度可变。我想做的是在三行图像之后,然后添加分页按钮。。。而不是在一定数量的图像后显示分页按钮。。。这可能吗?第1页还可以,虽然底部行中可能会有更多图像-第2页只有两行,第3页第三行只有一个图像-尽管有更多图像。。