Pagination on Single Post

时间:2014-04-11 作者:MxmastaMills

我想在我的单曲上设置分页。php文件,以便正确使用无限滚动函数。我知道分页可以放在一个帖子上,但我需要做一个。php页面可以在URL上附加一个变量。我的意思是,如果我有这个URL:

http://www.example.com/post_URL/
我需要它像这样工作:

http://www.example.com/post_URL/page/2/
它需要像这样工作,因为我在主页/主博客页面上有一个无限滚动条,它选择的是get\\u query\\u var(\'page\')变量,它似乎不存在于单个页面中。php页面。它在无限卷轴中不断循环第一页,这似乎在告诉我,它只是反复默认值为“1”。

有没有办法做到这一点?

谢谢你的帮助!

编辑我发现我可以通过转到以下URL手动创建“page”变量:

http://www.example.com/my-article/2/
页面底部的循环将此页面视为第=2页,即使显示相同的内容。我的假设是,页面末尾的2是一个get\\u query\\u var()变量,但在循环/无限滚动期间,它不一定被视为这样。所以我知道它存在,但无法被无限卷轴访问。你认为这是什么原因?

编辑下面是我在查询的单篇文章页面上使用的分页代码(不是我使用的“paged”,而是在单篇文章上应该使用的“page”;我也尝试了“page”,以防万一):

    $paged = get_query_var(\'paged\');


$wp_query = new WP_Query(
    array(
        \'post__not_in\' => array(get_the_ID()),
        \'category__not_in\' => 9,
        \'post_type\' => \'post\',
        \'post_status\' => \'publish\',
        \'posts_per_page\' => 3,
        \'paged\' => $paged
    )
);
这段代码在主页上的循环中起作用。它在单曲上不起作用。php页面。

编辑,所有的帮助都很好,但仍然没有完全解决问题。当我在主页URL上回显$paged变量时,我得到“0”。如果我使用附加了/2/的url,那么它就是“2”,以此类推(这样就可以了)。因此,它无法将主页识别为“1”页。这是一个无限卷轴,所以它需要能够从1开始,我不确定是否有可能让无限卷轴在这样的单篇文章页面上工作。知道为什么主URL的查询变量页值不为1吗?

5 个回复
SO网友:Hardeep Asrani

添加<!--nextpage--> 在帖子编辑器中拆分帖子。

SO网友:Milo

使用漂亮的永久链接时paged query var用于分页的归档文件,而pretty permalink格式是:

http://example.com/category/foo/page/2/
分页单篇文章的查询变量为page, 而permalink格式是:

http://example.com/post-name/2/
如果您试图在一篇文章中使用当前页码对二次循环分页,则需要读取查询变量page, 但是设置查询变量paged.

编辑-在单个帖子上获取当前页码:

$page = 0 == get_query_var(\'page\') ? 1 : get_query_var(\'page\');

SO网友:Rajeev Vyas

根据Milo,您需要读取查询变量页面,但需要将查询变量设置为paged。试试这个,

$page = 0 == get_query_var(\'page\') ? 1 : get_query_var(\'page\');


$wp_query = new WP_Query(
    array(
        \'post__not_in\' => array(get_the_ID()),
        \'category__not_in\' => 9,
        \'post_type\' => \'post\',
        \'post_status\' => \'publish\',
        \'posts_per_page\' => 3,
        \'paged\' => $paged
    )
);

SO网友:relish27

我遇到了同样的问题。使用“page”(而不是“paged”)的query\\u var,正如MxmastaMills指出的那样,如果我手动构建URL,我可以将内容放到页面上,如下所示:

www.mydomain.com/[post-type]/[post-slug]/[page]/
但是,我仍然需要分页按钮才能工作,而next\\u posts\\u link()和previous\\u posts\\u link()不能在单个帖子模板上工作。我在任何地方都找不到任何解决方案,所以我创建了自己的分页链接,它们很有效。我在分享,以防这有助于同一条船上的其他人。

// using "page" instead of "paged" here
$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;   


// The Query
$args = array(
      \'post_type\' => \'my-cpt\',
      \'post_status\' => \'publish\',
      \'posts_per_page\'     => 10,
      \'paged\'=>$paged,             
      \'orderby\' => \'date\',
      \'order\' => \'DESC\'                        
);  

$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ):

    while ( $the_query->have_posts() ):
        $the_query->the_post(); 

        // do your display

    endwhile;   

    // used in pagination buttons   
    $total_pages = $the_query->max_num_pages;   

    ?><div class="posts-navigation clearfix">                                    
        <div class="nav-previous">
            <?php 
            $previous_page = $paged + 1;
            $previous_page .= "/";
            if($paged > 0 && $paged < $total_pages): ?>
                <a href="<?php echo esc_url($expert_url . $previous_page); ?>">Older Posts</a>
            <?php endif; ?>         
        </div>
        <div class="nav-next">
            <?php 
            $next_page = $paged - 1;
            if($next_page == 1) { 
                $next_page = ""; // if the first page, don\'t include the "1/" at the end of the URL
            } else { 
                $next_page .= "/"; 
            }
            if($paged > 1 && $paged <= $total_pages): ?>
                <a href="<?php echo esc_url($expert_url . $next_page); ?>">Newer Posts</a>
            <?php endif; ?>                 
           </div>
    </div><?php     

endif;  

/* Restore original Post Data */
wp_reset_postdata();

SO网友:Glen Charles Rowell

<?php 
$paged; 
if ($paged == 0){
$paged++;
} ?>
如果变量为0,可以添加一些代码将其设置为1。

结束

相关推荐

删除带重定向的Single-Custom.php上的链接

我需要在自定义帖子类型的单个页面上为我的用户提供删除链接。但是,当条目被删除时,用户将在此页面上出现“找不到任何内容”的wordpress错误(因为我们仍然在条目站点+/?deleted=1). 如何将用户重定向到网站上的其他页面?以下是我发布删除链接的方式:if ( !current_user_can( \'delete_bkroadkill\', $post->ID ) ) return; $onclick = \"onclic