在WordPress中,你可以通过多种方式来指定或排除某分类的文章显示在首页,以下是几种常见的方法:
使用插件
有一些插件可以帮助你更方便地控制首页显示的内容,
Homepage Control: 这个插件允许你轻松地管理首页的显示内容,包括指定或排除特定分类的文章。
Custom Homepage by Taxonomy: 这个插件允许你根据分类、标签等筛选首页显示的文章。
修改主题文件(不推荐新手)
如果你熟悉PHP和WordPress的模板结构,可以直接编辑主题文件来实现这个功能,以下是一个简单示例:
编辑index.php
文件
找到你当前使用的主题文件夹中的index.php
文件,然后添加以下代码来排除特定分类:
<?php // 定义要排除的分类ID $excluded_categories = array(3, 5); // 替换为你要排除的分类ID // 获取当前查询参数 global $query_string; parse_str($query_string, $query_params); // 检查是否有分类参数,如果有则移除它 if (isset($query_params['cat'])) { unset($query_params['cat']); } // 重新构建查询字符串 $new_query_string = http_build_query($query_params); ?> <ul> <?php // 自定义循环,排除指定的分类 $args = array( 'posts_per_page' => 10, // 每页显示的文章数 'cat' => '-' . implode(',-', $excluded_categories), // 排除的分类ID ); $custom_query = new WP_Query($args); if ($custom_query->have_posts()) : while ($custom_query->have_posts()) : $custom_query->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_postdata(); else : ?> <li>没有文章</li> <?php endif; ?> </ul>
编辑functions.php
文件
如果你不想直接修改index.php
,可以在主题的functions.php
文件中添加一个函数来过滤首页的主查询:
function custom_homepage_query($query) { if ($query->is_home() && !is_admin()) { $query->set('cat', '-3,-5'); // 替换为你要排除的分类ID } } add_action('pre_get_posts', 'custom_homepage_query');
使用小工具和页面构建器
如果你使用的是页面构建器插件(如Elementor、Beaver Builder),这些插件通常提供更直观的方式来控制首页内容的显示,包括指定或排除特定分类的文章。
使用短代码插件
一些短代码插件也允许你在小工具或页面中使用短代码来显示特定分类的文章,使用Shortcodes Ultimate插件,你可以使用如下短代码:
[su_list category="your-category"]
或者排除某个分类:
[su_list category="your-category" exclude="yes"]
通过以上方法,你可以灵活地控制WordPress首页显示的内容,根据实际需求选择最适合你的方法。