个性化阅读
专注于IT技术分析

WordPress-自定义模板上的分页未显示(Lollum Framework-Lotusflower主题)

我一直在使用名为Lotusflower的wordpress主题。我创建了一个页面模板(复制粘贴了index.php), 并使用WP_Query来获取我希望在此页面上显示的帖子。但是, 内置分页功能的主题似乎在这里不起作用。你能解释为什么吗?

//Query for the posts
<?php
/**
 * Lollum
 * 
 * The main template file
 *
 * This is the most generic template file in a WordPress theme and one of the
 * two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * For example, it puts together the home page when no home.php file exists.
 *
 * @package WordPress
 * @subpackage Lollum Themes
 * @author Lollum <support@lollum.com>
 *
 */
/*
Template Name: What's New
*/
$postsPerPage = 3;
$page = 1;
$post_query = new WP_Query(array(
    'post_status' => 'publish', 'orderby' => 'publish_date', 'order' => 'DESC', 'paged' => $page, 'posts_per_page' => $postsPerPage
)); ?>

然后我像这样使用它来获取自定义页面模板上的最新帖子:

<?php // START the loop 
?>
<?php while ($post_query->have_posts()) : $post_query->the_post(); ?>
<?php #CUSTOM ADDITIONS : SHOW VIEWS echo wpb_get_post_views(get_the_ID()); 
?>

<?php get_template_part('content/content', get_post_format()); ?>

<?php endwhile; ?>
<?php // END the loop 
?>

<?php lollum_pagination(); ?>

<?php // lollum_pagination_default(); 
?>

</div>

其中lollum_pagination()函数如下所示:

    /**
 * Pagination
 */
if (!function_exists('lollum_pagination')) {
    function lollum_pagination($pages = '', $range = 2) {  
        $showitems = ($range * 2)+1;  
        global $paged;
        if(empty($paged)) $paged = 1;
        if($pages == '') {
            global $wp_query;
            $pages = $wp_query->max_num_pages;
            if(!$pages) {
                $pages = 1;
            }
        }   
        if(1 != $pages) {
            echo "<nav class='pagination'>";
            echo "<h2 class='assistive-text'>" . __('Post navigation', 'lollum') . "</h2>";
            if($paged > 1 && $showitems < $pages) echo "<a href='" . get_pagenum_link($paged - 1) . "'>&laquo;</a>";

            for ($i=1; $i <= $pages; $i++) {
                if (1 != $pages &&(!($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems)) {
                    echo ($paged == $i)? "<span class='current'>" . $i . "</span>":"<a href='" . get_pagenum_link($i) . "' class='inactive' >" . $i . "</a>";
                }
            }
            if ($paged < $pages && $showitems < $pages) echo "<a href='" . get_pagenum_link($paged + 1) . "'>&raquo;</a>";  
            echo "</nav>\n";
        }
    }
}

我没有在这个功能上摆弄。我猜它不起作用, 因为我需要使用另一种方式来查询帖子?那是我的猜测。在我的index.php(我从中复制代码的地方)上, 完全相同的代码段可以完美地工作(我没有使用自定义数组, 因为它直接查询帖子)

提前致谢


#1


我通过执行以下操作使其工作:

  1. 将$ post_query的名称更改为$ wp_query(因为该函数使用此名称)
  2. 使用’paged’=> get_query_var(‘paged’), 而不是整数$ page。对于自定义查询, 你似乎需要使用查询var。

这解决了。

赞(0) 打赏
未经允许不得转载:srcmini » WordPress-自定义模板上的分页未显示(Lollum Framework-Lotusflower主题)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏