在Wordpress的后台设置中,我们可以通过 阅读 > 博客页面至多显示 设置每页最多显示的文章数目,但此设置只能将所有的类别(首页、分类目录页、标签页、作者页)显示的文章数都设置成一个固定值。
使用WordPress建站的过程中,如果我们想给不同归档页面(首页、分类目录页、标签页、作者页)自定义每页显示条数。比如首页每页最多显示10篇文章,分类页每页最多显示20篇文章,标签页每页最多显示30篇文章。这篇WordPress教程里,我们就向大家介绍一下具体的实现方法。
我们先来了解一下Wordpress内部提供的函数来判断某个页面的类别:
1 2 3 4 5 | is_home() is_paged() is_single() is_category() is_tag() |
上面的函数依次判断是否是首页、是否是分页显示、是否是文章页、是否是分类目录页、是否是标签页。Wordpress中提供了各种钩子 (Hooks ),通过这些钩子我们可以修改Wordpress中的一些内部行为。在查询的时候可以通过 posts_per_page 设置每页显示的文章数,如下:
1 2 3 4 5 | $args = array( 'caller_get_posts' => 1 'posts_per_page' => 10 ); query_posts($args); |
上面的代码片段表示我们查询的时候需要每页最多显示10篇文章。我们可以通过重写 pre_get_posts 钩子来自定义不同归档页面每页显示的文章数量。如果我们想在首页每页最多显示10篇文章,分类页每页最多显示20篇文章,标签页每页最多显示30篇文章。切换到主题目录,打开functions.php文件,加入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | function wp_posts_per_page($query) { if (is_home()) { $query->set('posts_per_page', 10); } if (is_category()) { $query->set('posts_per_page', 20); } if (is_tag()) { $query->set('posts_per_page', 30); } //endif } //function add_action('pre_get_posts', 'wp_posts_per_page'); |