分页主页--要求?

时间:2012-07-28 作者:Paul

索引中有以下循环。php文件:

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

$args=array(
    \'post_type\' => array (\'portfolio\'),
    \'order\' => \'DESC\',
    \'paged\' => $paged,
    \'posts_per_page\' => $post_per_page,
    \'ignore_sticky_posts\' => $do_not_show_stickies
);
$wp_query = new WP_Query($args);
if( have_posts() ) : 
        while ($wp_query->have_posts()) : $wp_query->the_post();
             //Do some stuff...
它工作得很好。它显示30篇文章,但如何访问第二页?

我试过了:
http://example.com/?paged=2 (服务器404错误)
http://example.com/page/2 (重定向到主页并删除/page/2 零件)
<?php wp_link_pages(); ?> (不返回任何内容)

我有默认的永久链接。我做错了什么?如何访问帖子的第二页?

2 个回复
SO网友:ivavid

如果将以下内容放在while循环之后,它是否链接到任何内容?

<?php next_posts_link(\'&laquo; previous posts\');
    if (get_next_posts_link() && get_previous_posts_link())
        echo \' | \';
    previous_posts_link(\'next posts &raquo;\');
?>

SO网友:Tom J Nowell

我建议不要使用索引。如果不存在更具体的模板,php还可以用于其他归档。对于frontpage,请使用frontpage。php或主页。php

此外,如果您只显示自定义查询,我建议您使用pre_get_posts 钩住而不是扔掉主查询并显示自己的查询。这将允许您使用主循环并回避整个分页问题

编辑:请注意if(have_posts), 这将检查主查询是否有帖子,而不是自定义查询是否有帖子。将其更改为$wp_query->have_posts 相反

结束

相关推荐

Delist entries in the_loop

我正在尝试向我的WordPress网络添加一个退市功能。被除名的帖子不会出现在帖子列表中,但如果直接访问,仍然可以看到。我编写了一个插件,帮助编辑在作者和帖子上删除带有自定义元值的条目。因此,在公开列表中显示每篇文章之前,我需要检查两个元数据:delist-post post 元价值和delist-author user 元值。我想注册一个pre_get_posts 限制返回的筛选器get_posts() 通过设置查询的meta_query 所有物是否可以使用POST检查用户元值meta_query? 如