【问题标题】:Wordpress (3.4.2) Pagination Issue - Custom Post TypeWordpress (3.4.2) 分页问题 - 自定义帖子类型
【发布时间】:2012-10-11 14:20:16
【问题描述】:

我遇到了一个问题,我似乎无法在最新的 wordpress 版本 3.4.2 上进行分页。我开发了很多 wordpress 网站,所以这相当混乱。我有一个自定义帖子类型的新闻,我希望每页显示 8 个帖子,页面 url 将是“/新闻”。此页面正确显示,底部有正确的分页(使用 WP-pagenavi)。当我点击第二页(/news/page/2)时,我得到了我的 404 页面。对于解决此问题的任何帮助,我将不胜感激。

<?php
/*
Template Name: News
*/
?>

<?php get_header(); ?>

<div class="container_12">

   <div class="grid_12 box">            

        <?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $args = array( 'post_type' => 'news', 'posts_per_page' => 8, 'paged' => $paged);    
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post();
        ?>

        <div class="news">
                <h4><?php the_title() ?></h4></a>
                <span><?php the_time('F jS, Y'); ?></span>
                <p><?php limit_excerpt("30"); ?></p>
        </div>

        <?php endwhile; ?>


        <div id="pagination">
            <?php if(function_exists('wp_pagenavi')) { 
                wp_pagenavi( array(
                    'query' =>$loop   
                )); 
            }
            ?>
        </div>

   </div>

</div><!-- .container_12 -->

<?php get_footer(); ?>

[更新 - 解决方案]

所以我为此编写了一个解决方案。把它放在functions.php中

//Set for cpts
function cpt_init( $cpt )
{
add_rewrite_rule(
    "{$cpt}/page/([^/]+)/?",
    "index.php?pagename={$cpt}&pag=$matches[1]",
    'top' );
}

//Only Add Once
add_filter( 'query_vars', 'cpt_query_vars' );
function cpt_query_vars( $query_vars )
{
 $query_vars[] = 'pag';
return $query_vars;
}

//Add for each type
add_action( 'init', 'cpt_init', 'news' );

在你的循环中使用get_query_var('pag') 而不是get_query_var('page')

【问题讨论】:

    标签: php custom-post-type wordpress


    【解决方案1】:

    您是否尝试过使用全局变量 $paged 而不是将其归因于您自己的值?

    例如,这是在自定义主题中使用的内容:

    <?php
        global $paged;
        $the_query = new WP_Query();
        $the_query->query('post_type=post&posts_per_page=14&post_status=publish&paged='.$paged);
    ?>
    

    【讨论】:

      猜你喜欢
      • 2012-11-29
      • 1970-01-01
      • 2014-05-15
      • 2011-03-20
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多