Wordpress分页的帖子名称不起作用

时间:2015-09-17 09:51:07

标签: wordpress pagination

我对自定义Wordpress主题的分页问题感到非常难过。

我有一个自定义页面,可以查看“图书”列表。即使是分页也能正确显示所有内容。我的永久链接选项设置为“帖子名称”。因此,当我想查看我的图书清单的第2页时,我点击'2'并且我被引导到www.domain.com/book-list/page/2,这给了我404错误。但是,当我将永久链接选项更改为“默认”时,分页与?paged = 2一起使用。

我搜索了2天,我尝试了很多不同的东西,但似乎都没有。非常感谢任何帮助。

以下是我在function.php中的方法:

function get_book_posts($type, $num, $category = ""){

  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $args = array(
    'post_type' => $type, 
    'posts_per_page' => $num, 
    'paged' => $paged, 
    'category_name' => $category);

    $new_query = new WP_Query($args);
    query_posts($args);
}

function get_book_pagination(){
    $args = array(
      'prev_text'    => __('<'),
      'next_text'    => __('>'));

  echo paginate_links($args);}  

来自booklist.php

<?php $posts = get_book_posts('book', 6); ?>

<?php if(have_posts()):?>

<?php while (have_posts()):the_post()?>
    <a href="<?php the_permalink();?>"><?php the_title();?></a>
<?php endwhile; ?>

<div class="pagination">
    <?php get_book_pagination(); ?>
</div>
<?php wp_reset_postdata(); ?>
 

2 个答案:

答案 0 :(得分:0)

更改阅读设置并将其默认为2个帖子,之后再次将默认永久链接设为自定义固定链接,您的问题将得到解决。

答案 1 :(得分:0)

试试这个:

<?php $posts = get_book_posts('post', 2); ?>
            <?php if(have_posts()):?>
            <?php while (have_posts()):the_post()?>
                <a href="<?php the_permalink();?>"><?php the_title();?></a>
            <?php endwhile; ?>
            <div class="pagination">
                <?php 
                global $wp_query;
                get_book_pagination(); ?>
            </div>
            <?php wp_reset_query(); ?>          
            <?php endif; ?>

<强> function.php

function get_book_posts($type, $num, $category = "")
{

  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $args = array(
    'post_type' => $type, 
    'posts_per_page' => $num, 
    'paged' => $paged, 
    'category_name' => $category);

    $new_query = new WP_Query($args);
    query_posts($args);

}

function get_book_pagination(){
    global $wp_query;   
    $args = array(
      'prev_text'    => __('&lt;'),
      'next_text'    => __('&gt;'),    
        'total' => $wp_query->max_num_pages
      );

  echo paginate_links($args);
 }