一、核心准备工作
你只需要完成3项前置准备,零门槛即可操作:
- 正常运行的WordPress站点(版本建议5.0以上);
- 站点后台的管理员账号权限;
- 使用子主题(避免主题更新丢失代码,若未配置子主题可按以下步骤创建):在
wp-content/themes/目录下新建文件夹命名为my-child-theme,在文件夹内新建style.css,粘贴以下代码:
```css
/
Theme Name: My Child Theme
Template: twentytwentyfour
/
@import url('../twentytwentyfour/style.css');
```
再在该文件夹内新建空文件functions.php,子主题创建完成后,在WordPress后台→外观→主题→启用“My Child Theme”。
二、编写自定义短代码函数
必须修改子主题的functions.php,不要动父主题文件,打开该文件后粘贴完整代码(短代码功能默认WordPress支持,无需额外插件):
```php
// 自定义短代码:[recent_posts] 显示指定分类的最新文章
function custom_recent_posts_shortcode($atts) {
// 定义短代码默认参数,可按需调整
$atts = shortcode_atts(array(
'number' => 5, // 默认显示文章数量
'category' => '', // 目标分类别名,留空显示所有分类
), $atts);
// 构建文章查询条件
$args = array(
'post_type' => 'post',
'posts_per_page' => intval($atts['number']),
'category_name' => sanitize_text_field($atts['category']),
'post_status' => 'publish',
);
$query = new WP_Query($args);
// 生成短代码输出内容
$output = '
';
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$output .= '- '.get_the_title().'
';
}
} else {
$output .= '- 暂无符合条件的文章
';
}
wp_reset_postdata(); // 重置查询,避免影响全局文章循环
$output .= '
';
return $output;
}
// 注册短代码(固定格式,不要修改这行的短代码名前半部分)
add_shortcode('recent_posts', 'custom_recent_posts_shortcode');
```

代码说明:你可以自定义短代码名(替换recent_posts),也可以调整默认参数的number值,无需复杂修改。
三、在文章中嵌入短代码
两种编辑器操作方式,按需选择:
1. 经典编辑器(TinyMCE)
登录WordPress后台→文章→添加新文章→直接在编辑器输入短代码,格式为:[recent_posts number="3" category="life"](示例:显示分类别名life下的3篇文章)→点击“预览”确认效果后发布。
2. 古腾堡块编辑器
添加新文章后,点击“+”号搜索“短代码”块→在块的输入框中输入自定义短代码→更新文章即可生效。
四、常见问题快速排查
- 短代码无效果:检查是否遗漏
add_shortcode注册代码,函数名和短代码名要对应;
- 输出空白:检查
functions.php是否有语法错误,可通过后台→工具→站点健康→状态查看PHP错误;
- 分类不生效:确认使用分类别名而非中文名称(可在后台→文章→分类中查看别名);
- 主题更新后代码丢失:仅修改子主题,父主题更新不会覆盖子主题文件;
- 样式不符:在子主题
style.css中添加自定义样式,比如给列表项设置间距:
```css
.custom-recent-posts li {
margin: 8px 0;
list-style-type: disc;
}
```