【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极客码2 天前
WordPress 中最佳的维护服务:入门级用户指南
wordpress·入门指南·网络维护
boke112百科3 天前
如何修改WordPress经典编辑器的默认高度?
编辑器·wordpress·wordpress教程
wodrpress资源分享4 天前
卖三蹦子的wordpress模板
wordpress
伊玛目的门徒6 天前
WordPress网站添加嵌入B站视频,自适应屏幕大小,取消自动播放
wordpress·b站·网站·嵌入视频
Web极客码12 天前
如何使用 cPanel 部署 WordPress临时网站
wordpress·1024程序员节·cpanel
山川绿水14 天前
春秋云镜——SQL注入漏洞复现——CVE-2022-4230
数据库·web安全·网络安全·wordpress·1024程序员节
wodrpress资源分享15 天前
给WordPress添加个额外的古腾堡编辑器
编辑器·wordpress
wodrpress资源分享16 天前
新网虚拟主机wordpress伪静态规则
wordpress
wodrpress资源分享16 天前
怎么选择独立站SEO效果好的wordpress模板
wordpress
cheniie19 天前
WordPress+Nginx 安装教程
wordpress