
您现在的位置是:首页 > WordPress教程WordPress教程
WordPress置顶文章搞不定?手把手教你从入门到“玩明白”!
WP集市
2025-08-21
【WordPress教程】
903人已围观
说实话,WordPress的置顶文章功能,看着简单,真上手了就容易懵圈——要么置顶了找不到在哪儿改,要么想放俩置顶文章结果顺序乱糟糟,更别说自定义排序了。今天咱就掰开揉碎了说,从基础操作到进阶玩法,保证你看完就能上手,以后置顶文章想咋整咋整!
先唠5毛钱的:默认置顶咋玩?(新手必看)
其实WordPress自带置顶功能,就是藏得有点“反人类”。你新建或编辑文章时,拉到右边“发布”模块,往下瞅,有个“ visibility”(可见性),点一下,里面藏着个“置顶于首页”的勾选框——对,就它!勾上,更新文章,首页就会把这篇文章顶到最前面,标题旁边还会多个“置顶”标签,一眼就能认出来。
但问题来了:默认置顶有俩坑。一是只能置顶一篇,想同时置顶“本周热点”和“新人必读”?没门儿!二是顺序死的,置顶了就固定在最上面,想让“新人必读”排“本周热点”前面?默认功能办不到。这时候就得整点“进阶操作”了。
进阶玩法1:多文章置顶,还能自定义顺序!
想同时置顶多篇文章,还能自己排先后?别慌,不用装插件,几行代码就能搞定。核心思路是:给文章加个“置顶权重”(就当是给文章贴个“插队号码牌”),权重越大排越前,然后让WordPress按这个权重显示置顶文章。
第一步:给文章加个“权重值”
先得让编辑文章时能填这个“权重”。打开你主题的functions.php
(别直接改!先复制一份备份,改崩了好恢复,听我的!),贴这段代码:
// 给文章加个置顶权重字段
function add_pin_weight_meta_box() {
add_meta_box(
'pin_weight_box', // 框框ID
'置顶权重(数字越大越靠前)', // 框框标题
'show_pin_weight_meta_box', // 显示内容的函数
'post', // 只在文章类型显示
'side', // 放右边栏
'high' // 优先级高点,显眼
);
}
add_action('add_meta_boxes', 'add_pin_weight_meta_box');
// 显示权重输入框
function show_pin_weight_meta_box($post) {
$pin_weight = get_post_meta($post->ID, 'pin_weight', true);
// 没填过就默认0,填过就显示之前的数
echo '<input type="number" name="pin_weight" value="'.esc_attr($pin_weight ? $pin_weight : 0).'" style="width:100%;">';
}
// 保存权重值
function save_pin_weight_meta_box($post_id) {
if (isset($_POST['pin_weight'])) {
update_post_meta($post_id, 'pin_weight', absint($_POST['pin_weight'])); // 确保是正整数
}
}
add_action('save_post', 'save_pin_weight_meta_box');
保存一下,再去编辑文章,右边栏就会多一个“置顶权重”输入框——想让哪篇文章排前面,就给它填个大数字(比如100),次要的填小点(比如50),不置顶的就留0。
第二步:让WordPress按“权重”显示置顶文章
光填了权重还不行,得告诉WordPress“按这个数排序”。继续在functions.php
里加代码(还是那句话,先备份!):
// 改首页查询,让置顶文章按权重排序
function custom_pin_posts_order($query) {
if ($query->is_home() && $query->is_main_query() && !is_admin()) {
// 先查带权重的置顶文章
$query->set('meta_key', 'pin_weight');
$query->set('orderby', 'meta_value_num'); // 按数字排序
$query->set('order', 'DESC'); // 从大到小排
// 顺便把权重>0的都算“置顶”,不管默认的置顶勾选
$query->set('meta_query', array(
array(
'key' => 'pin_weight',
'value' => 0,
'compare' => '>'
)
));
}
}
add_action('pre_get_posts', 'custom_pin_posts_order');
这段代码是啥意思?说白了就是告诉WordPress:“首页文章别瞎排,先看有没有‘pin_weight’这个数,有的话按数从大到小排,数越大越往前放,没这个数的(或者数是0的)就往后稍稍。”
踩坑提醒:这些细节别忽略!
- 权重值别乱填:比如你想置顶3篇,权重填10、20、30就行,别填10000这种夸张数,后面想加新置顶文章还得算半天;
- 别和默认置顶混用:用了上面的代码,就别勾默认的“置顶于首页”了,容易冲突;
- 主题兼容问题:有些主题自己改了首页查询,可能会让这段代码失效。这时候别慌,把代码里的
is_home()
改成is_front_page()
试试(首页是静态页就用这个)。
最后说句大实话
学会这几招,置顶文章想置顶几篇就置顶几篇,想让哪篇排前面就哪篇排前面,再也不用依赖插件了(插件虽方便,但多一个插件多一份加载压力不是?)。嫌代码麻烦?先从手动改functions.php
开始练手,改两次就熟了——编程这事儿,光看不动手,永远是“会看不会做”。
赶紧打开你网站后台试试,搞不定的话……评论区喊我,我教你(前提是你先备份了functions.php
啊!)!
Tags:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。

相关文章
- WordPress友情链接管理保姆级教程:从添加到优化,小白也能看懂!
- WordPress数据库备份插件怎么整?手把手教你从0到1搞明白(附代码思路)
- WordPress维护模式不求人:3招让你优雅渡劫
- WordPress主题改CSS?三步搞定!新手也能上手的实操教程
- WordPress头部代码咋改?程序员手把手教你,别再瞎改把网站搞崩了!
- WordPress底部版权咋改?别再让“Powered by WordPress”霸屏了!
- WordPress 内容自动化摘要插件 - 智能内容提炼与SEO优化工具
- WordPress函数模板咋用?从抄代码到自己写,这篇手把手教你
- WordPress钩子动作入门:别再瞎改代码了,学会这招轻松扩展!
- WordPress主题框架怎么选?老炮儿手把手给你盘明白
热门文章
