我一直在使用名为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) . "'>«</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) . "'>»</a>";
echo "</nav>\n";
}
}
}
我没有在这个功能上摆弄。我猜它不起作用, 因为我需要使用另一种方式来查询帖子?那是我的猜测。在我的index.php(我从中复制代码的地方)上, 完全相同的代码段可以完美地工作(我没有使用自定义数组, 因为它直接查询帖子)
提前致谢
#1
我通过执行以下操作使其工作:
- 将$ post_query的名称更改为$ wp_query(因为该函数使用此名称)
- 使用’paged’=> get_query_var(‘paged’), 而不是整数$ page。对于自定义查询, 你似乎需要使用查询var。
这解决了。
评论前必须登录!
注册