怎么快速给WordPress不同分类的模板设置调用指定数量的文章?

Wordpress3年前 (2022)发布 SUYEONE
1.2K 0 0

开发WordPress主题时,我们可以利用分类模板来定制每个分类显示的文章数量。以下是一个示例代码,展示了如何通过设置不同的分类ID和对应的每页文章数来实现这一功能

“`php
function custom_query_mods( $query ) {
// 获取设置中的分类ID和数量
$cat1_id = get_theme_mod(‘picmoban_id’);
$cat2_id = get_theme_mod(‘videomoban_id’);
$cat3_id = get_theme_mod(‘postmoban_id’);
$cat4_id = get_theme_mod(‘topicmoban_id’);

$cat1_num = get_theme_mod(‘picmobannumb’, 10);
$cat2_num = get_theme_mod(‘videomobannumb’, 10);
$cat3_num = get_theme_mod(‘postmobannumb’, 10);
$cat4_num = get_theme_mod(‘topicmobannumb’, 10);

// 如果不是主查询,跳过
if (!$query->is_mAIn_query()) {
return;
}

// 根据分类ID判断并设置每页文章数量
if (is_category($cat1_id)) {
$query->set(‘posts_per_page’, $cat1_num);
} elseif (is_category($cat2_id)) {
$query->set(‘posts_per_page’, $cat2_num);
} elseif (is_category($cat3_id)) {
$query->set(‘posts_per_page’, $cat3_num);
} elseif (is_category($cat4_id)) {
$query->set(‘posts_per_page’, $cat4_num);
}
}
add_Action(‘pre_get_posts’, ‘custom_query_mods’);
“`

在这个代码中,我们使用了`get_theme_mod()`函数来获取主题设置中的分类ID和每页文章数。如果某个分类ID未设置,我们会使用默认值(如10)。然后,我们检查当前查询是否为主查询,如果是,我们就根据当前的分类ID来设置`posts_per_page`,从而改变每页显示的文章数量。

请注意,你需要确保在WordPress的主题设置中已经设置了相应的分类ID和每页文章数变量,例如`picmoban_id`、`picmobannumb`等。这些设置可以通过`functions.php`文件或其他方式提供给用户自定义。

© 版权声明

相关文章

暂无评论

暂无评论...
☺一键登录开启个人书签等功能!