自定义帖子类型的奇怪分页404问题

时间:2012-02-23 03:28:11

标签: pagination http-status-code-404 archive custom-post-type

我尝试在其归档页面中对自定义帖子类型进行分页时遇到了一个非常奇怪的问题,我创建了一个名为property的自定义帖子类型,并设置了一个名为properties的归档页面以显示所有这些。

因此,在我的archive-property.php文件中添加了一个带有下拉框的表单(GET方法),以便用户可以设置每页要显示的帖子数量,如下所示:

<select name="prop_number" id="prop_number">
    <option value="12">12</option>
    <option value="25">25</option>
    <option value="50">50</option>
</select>

所以在我做的每件事之前:

if (isset($_GET)) {

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

    $query_args = array(
        'post_type'      => 'property',
        'paged'          => $paged,
        'posts_per_page' => 12 // Default number of properties per page
    );

    // Custom number properties per page
    if (isset($_GET['prop_number']) && !empty($_GET['prop_number'])) {
        $query_args['posts_per_page'] = $_GET['prop_number'];
    }
}

query_posts($query_args); 

// Do loop and other stuff

它工作正常,但当我使用next_posts_link()到达第二页时,我得到一个页面未找到404错误,但是如果我去我的WP管理区域并设置“博客页面最多显示”选项在我的选择框中每页我想要的相同数字(例如我在“博客页面最多显示”上手动设置25并在我的prop_number选择框中选择25)它确实可以正常工作。

我甚至尝试使用WP-PageNavi插件,它确实渲染了正确数量的数字,具体取决于我想要显示多少属性但我在任何页面上都有相同的问题404页面我尝试去除非我手动在后端设置页面。

如果我不需要选择我想要显示的属性数量,我只需手动设置数字,但由于用户可以在3个选项中进行选择,因此我无法在后端将其设置为固定数字。

谁能告诉我什么是错的?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定您是否曾解决过您的问题,但为了找到这个问题的任何人,您可能想尝试刷新您的固定链接结构。

来自http://codex.wordpress.org/Rewrite_API/flush_rules

//Ensure the $wp_rewrite global is loaded
global $wp_rewrite;
//Call flush_rules() as a method of the $wp_rewrite object
$wp_rewrite->flush_rules();

将它放在你的functions.php文件中,刷新你的页面,看看是否能解决你的问题。过去,当我遇到分页404问题时,它对我有用。

注意:一旦刷新了永久链接,请记住删除这两行(见上文),因为您不需要或希望每次请求页面时都运行 - 它只需要是做了一次。 (此整个操作可能与您在管理控制台中转到固定链接页面相同或不同。)