发布于2026-07-06 阅读(0)
扫一扫,手机访问
在日常的WordPress开发中,短代码是个非常灵活的利器。但很多时候,直接输出页面标题会发现夹杂着一些“冗余词”——比如营销化的“Best”、“Top”,或者地域后缀“Bay”、“Area”。如果不加处理,这些词会让标题显得不够清爽,也不利于内容的专业呈现。这篇文章就来看看如何扩展短代码功能,在输出页面标题的同时自动过滤掉这类预设词汇,让标题更简洁、更贴合场景。
默认情况下,[page_title] 短代码只是简单调用 get_the_title() 返回原始标题。但在真实运营中,我们往往需要做一层“语义净化”——比如去掉营销前缀(“Best”, “Top”, “Ultimate”),或者清理地域冗余词(“Bay”, “Area”, “Region”),使得嵌入到各个位置的标题看起来更自然、更统一。
下面这个增强版短代码函数就能搞定这件事。它支持大小写不敏感匹配,可以一次性过滤多个预设词汇,而且通过正则边界符避免了误伤(比如不会把“Bayonet”中的“Bay”截断)。
function post_title_shortcode() {
// 定义需过滤的关键词(支持英文单词及常见短语)
$excluded_words = [
'Best',
'Top',
'Ultimate',
'Bay',
'Area',
'Region',
'Guide',
'2024'
];
$title = get_the_title();
// 逐个替换,确保空格与边界处理更自然(避免误删子串)
foreach ($excluded_words as $word) {
// 使用正则替换:匹配独立单词(前后为空格、标点或字符串边界)
$pattern = '/\b' . preg_quote($word, '/') . '\b/i';
$title = preg_replace($pattern, '', $title);
}
// 清理多余空格与首尾空白
$title = trim(preg_replace('/\s+/', ' ', $title));
return $title;
}
add_shortcode('page_title', 'post_title_shortcode');
使用示例:
几个需要注意的细节:
\b 单词边界很关键——它能防止误删,比如不会把“Bay”从“Bayonet”里错误地截掉;/i 标志让匹配不区分大小写,适配标题中五花八门的写法;str_ireplace() 配合完整短语列表来处理;global $post 或 setup_postdata(),非常省心。通过这种方式,你可以在不修改主题模板的前提下,灵活控制标题的展示逻辑。既兼顾了SEO的友好性,也保证了前端呈现的一致性——这才是实际运营中最需要的“小而美”的优化点。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8