【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 站点的功能和用户体验。

相关推荐
2601_965798473 天前
Renovate Theme Setup: Fast Contractor & Construction Site Architecture
theme·wordpress
2601_965798474 天前
Salient Theme Setup Guide for Fast Creative WordPress Sites
数据库·web3·php·wordpress
2601_965798477 天前
Boutique Business Consulting WordPress Architecture & SEO Setup
android·theme·wordpress
2601_965798478 天前
Plastic Surgery Clinic Web Setup: Deploying Rejuvita WordPress
php·theme·wordpress
2601_965798478 天前
Contractor Web Setup: Deploying Bathrooms & Kitchens Theme Fast
前端·web3·php·wordpress
e6zzseo15 天前
wordpress独立站seo怎么做才有效
seo·wordpress·独立站·内容优化·外链建设
豆豆17 天前
快速搭建网站系列:CMS10分钟快速搭建完整流程
网站建设·网站搭建·cms建站·企业官网搭建·极速建站·零基础建站·新手建站
Web极客码17 天前
如何让用户订阅WordPress评论?提升用户互动的有效策略
运维·服务器·wordpress
fobwebs17 天前
Wordpress Xstore 主题安装Elementor Pro 后找不到某些Elements 组件的解决方法
element·wordpress·form·xstore·pro elements·elementor pro
代龙涛18 天前
WordPress sidebar.php 侧边栏开发教程
开发语言·php·wordpress