【WP|9】深入解析WordPress [add_shortcode]函数

add_shortcode 是 WordPress

中一个非常强大的函数,用于创建自定义的短代码(shortcodes)。短代码是一种简洁的方式,允许用户在内容中插入动态的、可重用的功能。通过
add_shortcode,开发者可以定义自己的短代码,然后用户可以在帖子、页面、小工具或其他内容区域中使用这些短代码来显示特定的内容或功能。

add_shortcode 的语法

php 复制代码
add_shortcode( $tag, $callback );
  • $tag(字符串):这是短代码的名称,用户在内容中使用的标签。
  • $callback(回调函数):这是一个函数,当短代码被使用时将被调用。该函数应该返回短代码的输出内容。

使用示例

以下是一个简单的示例,展示如何创建和使用短代码。

  1. 定义短代码

    在你的主题的 functions.php 文件或插件文件中添加以下代码:

    php 复制代码
    function my_custom_shortcode($atts, $content = null) {
        // 提取和处理短代码属性
        $attributes = shortcode_atts(
            array(
                'attr1' => 'default_value1',
                'attr2' => 'default_value2',
            ), 
            $atts
        );
    
        // 返回短代码的输出内容
        return '<div class="custom-shortcode">' . $attributes['attr1'] . ' - ' . $attributes['attr2'] . '</div>';
    }
    
    // 注册短代码
    add_shortcode('my_shortcode', 'my_custom_shortcode');
  2. 使用短代码

    在帖子或页面中,你可以使用以下语法插入短代码:

    plaintext 复制代码
    [my_shortcode attr1="value1" attr2="value2"]

    这将被解析为:

    html 复制代码
    <div class="custom-shortcode">value1 - value2</div>

更高级的用法

1. 短代码的嵌套

短代码可以包含嵌套内容。下面是一个处理嵌套内容的示例:

php 复制代码
function my_nested_shortcode($atts, $content = null) {
    return '<div class="nested-shortcode">' . do_shortcode($content) . '</div>';
}

add_shortcode('nested_shortcode', 'my_nested_shortcode');

在帖子或页面中使用:

plaintext 复制代码
[nested_shortcode]这里是嵌套内容,可以包含其他短代码,比如 [my_shortcode attr1="value1"][/nested_shortcode]
2. 复杂的回调函数

回调函数可以非常复杂,包含条件逻辑、数据库查询等。例如:

php 复制代码
function my_complex_shortcode($atts) {
    global $wpdb;

    $attributes = shortcode_atts(
        array(
            'category' => 'default',
        ), 
        $atts
    );

    $category = $attributes['category'];

    // 查询数据库
    $results = $wpdb->get_results(
        $wpdb->prepare(
            "SELECT * FROM wp_posts WHERE post_category = %s",
            $category
        )
    );

    $output = '<ul class="category-posts">';
    foreach ($results as $post) {
        $output .= '<li>' . $post->post_title . '</li>';
    }
    $output .= '</ul>';

    return $output;
}

add_shortcode('complex_shortcode', 'my_complex_shortcode');

在帖子或页面中使用:

plaintext 复制代码
[complex_shortcode category="news"]

总结

add_shortcode 是 WordPress 提供的一个非常有用的工具,允许开发者创建自定义的短代码,提供灵活的内容展示方式。通过合理使用短代码,可以极大地增强 WordPress 站点的功能和用户体验。

相关推荐
Web极客码11 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
tommyjiatong6 天前
解决 WordPress 必须带 index.php 才能访问及无法提交站点地图(Sitemap)的底层原理与方案
php·网站搭建·wordpress
Web极客码11 天前
如何在WordPress中通知用户他们的评论已获批准?
服务器·wordpress·评论
钟智强17 天前
我警告了 329 天
git·php·wordpress·webshell
JokySue17 天前
外名网深度评测:ICANN认证域名注册商,600多种域名后缀一站搞定
云计算·wordpress·云服务器·域名注册·无代码建站
fobwebs17 天前
网站多国语言URLs被谷歌收录后,如果这些URLs移除了,如何正确处理?
seo·wordpress·多语言·小语种
豆豆17 天前
CMS 网站管理系统是什么?2026企业建站选哪个系统高效又省心
wordpress·建站系统·cms建站·网站管理系统·企业建站·建站工具·政务建站
jump_jump22 天前
EmDash:如果今天重写一遍 WordPress
cms·全栈·wordpress
豆豆1 个月前
什么是CMS系统_网站内容管理系统功能、分类与搭建方法详解
cms·wordpress·内容管理系统·网站管理系统·saas 建站·网站后台管理·网站建站
豆豆1 个月前
2026年如何选择适合自己的网站管理系统?
数据库·cms·wordpress·建站系统·网站管理系统·建站软件·织梦