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

如何为WordPress短代码[my_shortcode]添加属性并按值调用?

没问题,我来帮你搞定这个WordPress短代码的属性扩展!其实WordPress短代码本身就支持传入属性,只需要修改你的函数来接收和处理这些参数就行,具体步骤如下:

步骤1:修改短代码函数,接收并处理属性

首先,你的短代码函数需要接收第一个参数$atts——这是WordPress自动传递的、用户在短代码里写的属性数组。我们可以用shortcode_atts()函数来合并默认属性和用户传入的属性,确保即使用户没指定type,也有一个 fallback 默认值。

修改后的函数代码如下:

function my_shortcode_add($atts) {
    // 合并默认属性与用户传入的属性,默认type为"website"
    $args = shortcode_atts(
        array(
            'type' => 'website',
        ),
        $atts,
        'my_shortcode' // 指定短代码名称,用于优先级处理(可选,但推荐)
    );

    // 根据type值加载不同的资源(如果需要的话)
    if ($args['type'] === 'website') {
        wp_enqueue_script('my-script-1');
    } elseif ($args['type'] === 'landingpage') {
        // 假设落地页需要另一个专属脚本
        wp_enqueue_script('my-script-landingpage');
    }

    // 公共样式统一加载(也可以根据type区分加载)
    wp_enqueue_style('my-css');

    ob_start();
    // 将处理后的属性传递给模板文件,让模板能直接使用这些值
    include("include/shortcode.php");
    return ob_get_clean();
}
add_shortcode('my_shortcode', 'my_shortcode_add');
步骤2:在模板文件中根据type渲染对应内容

接下来修改你的include/shortcode.php,根据传入的type值显示不同的内容。记得要对属性值做安全转义,避免XSS风险:

<?php
// 提取type变量(可选,让代码更简洁易读)
$shortcode_type = esc_attr($args['type']);
?>

<div class="shortcode-container shortcode-<?php echo $shortcode_type; ?>">
    <?php if ($shortcode_type === 'website'): ?>
        <h3>网站专属内容</h3>
        <p>这是针对普通网站场景设计的短代码模块</p>
    <?php elseif ($shortcode_type === 'landingpage'): ?>
        <h3>落地页专属内容</h3>
        <p>这是针对落地页转化场景优化的短代码模块</p>
    <?php else: ?>
        <!-- 处理未定义的type值,显示友好提示 -->
        <h3>默认内容</h3>
        <p>请指定有效的type属性:website 或 landingpage</p>
    <?php endif; ?>
</div>
步骤3:使用带属性的短代码

现在你就可以像你想要的那样调用短代码了:

  • 调用网站类型:[my_shortcode type="website"]
  • 调用落地页类型:[my_shortcode type="landingpage"]
  • 不指定type的话,会自动使用默认的website类型:[my_shortcode]
额外小提示
  • 如果你需要更多属性,只需要在shortcode_atts()的数组里添加新的键值对即可,比如'title' => '默认标题',然后在短代码里用[my_shortcode type="website" title="我的专属网站"]调用。
  • 所有输出到页面的属性值都要使用esc_attr()、esc_html()等函数做安全转义,这是WordPress开发的最佳实践哦。

内容的提问来源于stack exchange,提问作者cloude

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:39:45