pre_get_posts
钩子函数和tax_query
参数进行查询。,,以下是一个示例代码片段,展示如何在WordPress首页指定或排除某分类文章显示:,,``php,function custom_homepage_query($query) {, if ($query->is_home() && $query->is_main_query()) {, $query->set('tax_query', array(, array(, 'taxonomy' => 'category', // 替换为你的分类法名称, 'field' => 'term_id', // 替换为你的字段类型,可以是'term_id'、'name'或'slug', 'terms' => array(1, 2, 3), // 替换为你想要显示的分类ID数组, 'include_children' => false, // 是否包含子分类,可以根据需要设置, ),, ));, },},add_action('pre_get_posts', 'custom_homepage_query');,
`,,在上面的代码中,你需要将
'taxonomy'替换为你的分类法名称,'category'
表示使用默认的文章分类法。将'field'
替换为你想要使用的字段类型,可以是'term_id'
(分类ID)、'name'
(分类名称)或'slug'
(分类别名)。将'terms'
替换为你想要显示的分类ID数组。,,如果你想排除某个分类,可以将'include_children'
设置为false
,这样它将只显示指定的分类,而不包括其子分类。,,通过将这段代码添加到你的主题的functions.php
文件中,你可以实现在WordPress首页指定或排除某分类文章显示的功能。记得根据你的实际情况修改代码中的参数值。实现方法
1、方法一:通过修改主题文件,在循环中添加条件语句来排除或包含特定分类的文章。
2、方法二:使用插件来实现首页显示或隐藏特定分类的功能。
3、方法三:通过创建特殊页面模板并应用WP_Query函数来控制显示内容。
具体操作步骤
方法一:通过修改主题文件
1、获取分类ID:
进入WordPress后台的“分类目录”页面。
将鼠标悬停在分类名称上,浏览器状态栏会显示URL地址,其中的tag_ID即为该分类的ID。
2、编辑主题文件:
打开主题编辑器(外观 > 主题编辑器)。
找到并编辑index.php或home.php文件。
3、添加条件语句:
在循环开始之前添加以下代码来排除特定分类的文章:
```php
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (is_home() && in_category('分类ID')) continue; ?>
```
将分类ID
替换为实际的分类ID。
若要在首页仅显示特定分类的文章,可以将上述代码中的continue;
改为break;
,并将in_category
替换为!in_category
。
方法二:使用插件
1、安装插件:
在WordPress后台的“插件”>“添加新”页面搜索并安装“Advanced Archives Excluder”等类似插件。
2、配置插件:
根据插件说明进行设置,选择要排除或包含的分类。
方法三:创建特殊页面模板
1、复制模板文件:
将主题中的index.php文件复制一份,命名为tips.php。
2、编辑模板文件:
在tips.php文件顶部添加以下代码以定义模板名称:
```php
/
Template Name: tips
*/
```
在循环开始之前添加WP_Query函数,指定要显示的分类ID:
```php
$args = array(
'cat' => 分类ID, // 'cat' => 14
);
$query = new WP_Query($args);
if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
```
将分类ID
替换为实际的分类ID。
3、创建新页面并应用模板:
在WordPress后台创建新页面,选择刚才创建的tips模板作为页面模板,并发布页面。
相关问题与解答
1、问题一:如何确保首页不显示某个分类下的文章?
解答:可以通过在主题文件的循环中添加条件语句来实现,具体操作是,在index.php或home.php文件中,找到循环开始的地方,添加如下代码:
```php
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (is_home() && in_category('分类ID')) continue; ?>
```
将分类ID
替换为实际的分类ID即可。
2、问题二:如何在首页仅显示特定分类的文章?
解答:可以通过创建特殊页面模板并使用WP_Query函数来实现,首先复制主题中的index.php文件,命名为例如tips.php,然后在tips.php文件顶部定义模板名称,并在循环开始之前添加WP_Query函数,指定要显示的分类ID,在WordPress后台创建新页面,选择创建的tips模板作为页面模板,并发布页面。
以上内容就是解答有关WordPress首页指定或排除某分类文章显示的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。