WordPress 中让分类栏目里的置顶文章显示在最前面
                        在 WordPress 中,要让分类栏目里的置顶文章显示在最前面,可以通过以下几种方法实现:
WordPress 本身有文章置顶功能,默认情况下,在首页置顶文章会显示在前面,但在分类栏目中可能需要额外调整代码。
在文章编辑页面,右侧 “文档” 模块中(若未显示,点击右上角 “三个点” 图标,勾选 “文档”),找到 “状态和可见性” 区域,点击 “公开” 旁边的 “编辑”,勾选 “置顶此文章到首页”。
通常在主题的
收起
php
如果你不想修改代码,也可以使用插件来实现这一功能,例如 “Sticky Posts Order” 插件。
登录 WordPress 后台,导航到 “插件” -> “添加新插件”,搜索 “Sticky Posts Order”,点击 “安装现在”,然后激活插件。
激活插件后,在 WordPress 后台左侧菜单会出现 “Sticky Posts” 选项。点击进入该页面,可以看到所有已设置为置顶的文章列表。通过拖动文章标题来改变文章的置顶顺序,排在越前面的文章在分类栏目中显示越靠前。该插件还支持按分类设置置顶文章,你可以选择特定的分类,然后在该分类下设置置顶文章的显示顺序。
                    
                    方法一:使用默认功能与代码调整
WordPress 本身有文章置顶功能,默认情况下,在首页置顶文章会显示在前面,但在分类栏目中可能需要额外调整代码。
1. 确保文章已置顶
在文章编辑页面,右侧 “文档” 模块中(若未显示,点击右上角 “三个点” 图标,勾选 “文档”),找到 “状态和可见性” 区域,点击 “公开” 旁边的 “编辑”,勾选 “置顶此文章到首页”。
2. 修改分类模板文件
通常在主题的
category.php文件中进行修改,若没有该文件,可从archive.php复制一份并命名为category.php。在文件中找到WP_Query或query_posts的部分(通常是获取文章列表的查询代码),将其替换为以下代码:收起
php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
    'post_type' => 'post',
    'paged' => $paged,
    'ignore_sticky_posts' => 0 // 不忽略置顶文章
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
    // 先显示置顶文章
    $sticky = get_option( 'sticky_posts' );
    if ( ! empty( $sticky ) ) {
        $sticky_query = new WP_Query( array(
            'post__in' => $sticky,
            'category__in' => get_queried_object_id(), // 只显示当前分类的置顶文章
            'ignore_sticky_posts' => 1
        ) );
        if ( $sticky_query->have_posts() ) {
            while ( $sticky_query->have_posts() ) {
                $sticky_query->the_post();
                // 显示文章内容,可根据主题修改
                get_template_part( 'content', get_post_format() );
            }
            wp_reset_postdata();
        }
    }
    // 再显示其他文章
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        if ( ! in_array( get_the_ID(), $sticky ) ) {
            // 显示文章内容,可根据主题修改
            get_template_part( 'content', get_post_format() );
        }
    }
    wp_reset_postdata();
} else {
    // 没有文章时的提示
    get_template_part( 'content', 'none' );
}
代码解释
- ignore_sticky_posts设为- 0,表示不忽略置顶文章。
- get_option( 'sticky_posts' )获取所有置顶文章的 ID。
- 先查询并显示当前分类下的置顶文章,再显示其他非置顶文章。
方法二:使用插件实现
如果你不想修改代码,也可以使用插件来实现这一功能,例如 “Sticky Posts Order” 插件。
1. 安装并激活插件
登录 WordPress 后台,导航到 “插件” -> “添加新插件”,搜索 “Sticky Posts Order”,点击 “安装现在”,然后激活插件。
2. 设置置顶文章顺序
激活插件后,在 WordPress 后台左侧菜单会出现 “Sticky Posts” 选项。点击进入该页面,可以看到所有已设置为置顶的文章列表。通过拖动文章标题来改变文章的置顶顺序,排在越前面的文章在分类栏目中显示越靠前。该插件还支持按分类设置置顶文章,你可以选择特定的分类,然后在该分类下设置置顶文章的显示顺序。
 
                        仍然有问题? 我们要如何帮助您? 
                    
                 
             
             
             
             
        

 
                        