You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从零开始创建支持传参的WordPress自定义短代码插件

如何从零开始创建支持传参的WordPress自定义短代码插件

嘿,我来一步步带你搞定这个支持传参的WordPress自定义短代码插件,其实没你想的那么复杂,跟着下面的步骤走,分分钟就能用起来~

第一步:准备插件的文件夹和主文件

首先打开你的WordPress安装目录,找到wp-content/plugins这个文件夹,在里面新建一个唯一的子文件夹(名字别和已有的插件重名,比如就叫custom-greet-shortcode)。然后在这个新文件夹里创建一个PHP文件,名字和文件夹同名就好,比如custom-greet-shortcode.php——这就是我们插件的核心文件了。

第二步:编写插件的识别头部

WordPress需要通过特定的头部注释来识别这是一个合法的插件,所以我们先在PHP文件最顶部写上这段代码:

<?php
/**
 * Plugin Name: 自定义问候短代码插件
 * Plugin URI: 
 * Description: 一个支持自定义名字的问候短代码,用法:[greet name="你的名字"]
 * Version: 1.0
 * Author: 你的名字
 * License: GPL2
 */

这里Plugin Name是必填项,其他字段可以根据你的需求填写,填清楚的话,后台插件列表里会显示得更清晰。

第三步:实现短代码的处理逻辑

接下来我们要写一个函数,用来处理短代码的参数和输出内容。这个函数会接收用户传入的属性,返回最终要显示的内容,还得考虑用户没传参数的情况(给个默认值),另外安全处理绝对不能忘,防止恶意代码注入:

// 定义短代码的处理函数
function greet_shortcode_handler($atts) {
    // 提取短代码属性,同时设置默认值
    $attributes = shortcode_atts(
        array(
            'name' => 'Guest', // 如果用户没传name,就默认显示Guest
        ),
        $atts,
        'greet' // 绑定到我们的短代码标签,确保属性解析的优先级
    );

    // 对用户传入的名字做安全过滤,避免XSS攻击
    $safe_name = esc_html($attributes['name']);

    // 返回最终的问候语
    return "Hello, {$safe_name}!";
}

这里shortcode_atts函数是WordPress专门用来处理短代码属性的,能帮我们把用户传的参数和默认值合并;esc_html则是把用户输入的内容转义,防止恶意HTML或JS代码被执行,这是开发WordPress插件的基本安全规范哦。

第四步:注册短代码到WordPress

现在我们要把刚才写的处理函数和短代码标签(就是用户在文章里用的[greet])绑定起来,用WordPress的add_shortcode函数就行:

// 注册短代码,让WordPress识别[greet]这个标签
add_shortcode('greet', 'greet_shortcode_handler');

第一个参数是短代码的标签名(用户写在文章里的就是[greet]),第二个参数是我们刚才定义的处理函数的名字,这样WordPress就知道遇到[greet]的时候该调用哪个函数来处理了。

第五步:激活插件并测试

最后一步很简单:

  • 登录你的WordPress后台,找到「插件」页面,你会看到我们的「自定义问候短代码插件」已经在列表里了,点击「激活」。
  • 新建一篇文章或页面,在编辑器里输入[greet name="John"],发布或预览后,就能看到页面上显示Hello, John!啦!
  • 再测试一下默认情况,输入[greet],页面会显示Hello, Guest!,完美~

一些额外的小提示

  • 函数命名要加前缀,比如把greet_shortcode_handler改成my_greet_shortcode_handler,这样能避免和其他插件或WordPress核心函数重名,防止冲突。
  • 如果想输出更复杂的内容(比如带样式的HTML),直接在函数里返回HTML字符串就行,比如:return "<div style='color: blue; padding: 10px;'>Hello, {$safe_name}!</div>";
  • 永远记得对用户输入的内容做安全过滤,除了esc_html,如果是输出到HTML属性里要用esc_attr,输出URL要用esc_url,这是WordPress开发的基本准则。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 11:24:35