add_shortcode( string $tag, callable $callback )

add_shortcode برای اضافه کردن یک شورتکد به وردپرس

توضیح تابع:

از این تابع برای اضافه کردن یک شورتکد جدید به وردپرس استفاده می‌شود. استفاده از این تابع این اطمینان را به شما می‌دهد که شورتکدها(shortcode) با یکدیگر تداخل ندارند.

در صورتی که شورتکدی ایجاد شود که قبلا در وردپرس تعریف شده باشد اولویت اجرا با شورتکد قدیمیتر می باشد.

پارامترها

$tag:

این پارامتر در واقع همان نامی است که در نوشته ها یا بخش های مختلف باید آن را فراخوانی کنید. این پارامتر ضروری است و از نوع رشته(String) می‌باشد.

$callback:

تابع callback، تابعی است که کدهای آن زمانی که شورتکد(shortcode) استفاده شود اجرا می‌شود. این پارامتر ضروری و باید قابل فراخوانی می باشد.

این تابع به صورت پیش فرض سه پارامتر ارسالی دارد که شامل یک آرایه از متغیرها و پارامترها($atts)، محتوای شورتکد یا null اگر $content ست نشده باشد و در نهایت تگ شورتکد($shortcode_tag)، به ترتیب.

منبع:

File: wp-includes/shortcodes.php

function add_shortcode( $tag, $callback ) {
    global $shortcode_tags;
 
    if ( '' == trim( $tag ) ) {
        $message = __( 'Invalid shortcode name: Empty name given.' );
        _doing_it_wrong( __FUNCTION__, $message, '4.4.0' );
        return;
    }
 
    if ( 0 !== preg_match( '@[<>&/\[\]\x00-\x20=]@', $tag ) ) {
        /* translators: 1: Shortcode name, 2: Space-separated list of reserved characters. */
        $message = sprintf( __( 'Invalid shortcode name: %1$s. Do not use spaces or reserved characters: %2$s' ), $tag, '& / < > [ ] =' );
        _doing_it_wrong( __FUNCTION__, $message, '4.4.0' );
        return;
    }
 
    $shortcode_tags[ $tag ] = $callback;
}

 

یک مثال ساده از شورتکد و استفاده از API:

shortcode: [footag foo="bar"]

add_shortcode( 'footag', 'wpdocs_footag_func' );
function wpdocs_footag_func( $atts ) {
    return "foo = {$atts['foo']}";
}

یک مثال با ارسال یک پارامتر : [bartag foo=”bar”]

add_shortcode( 'bartag', 'wpdocs_bartag_func' );
function wpdocs_bartag_func( $atts ) {
    $atts = shortcode_atts( array(
        'foo' => 'no foo',
        'baz' => 'default baz'
    ), $atts, 'bartag' );
 
    return "foo = {$atts['foo']}";
}

مثال دیگر با تگ باز و بسته شورتکد: [baztag] محتوا [/baztag]

add_shortcode( 'baztag', 'wpdocs_baztag_func' );
function wpdocs_baztag_func( $atts, $content = "" ) {
    return "content = $content";
}

add_shortcode( 'baztag', array( 'MyPlugin', 'wpdocs_baztag_func' ) );
class MyPlugin {
    public static function wpdocs_baztag_func( $atts, $content = "" ) {
        return "content = $content";
    }
}

برای درک بهتر نحوه استفاده از  Add_shortcode پست ایجاد یک افزونه برای محدود کردن مطالب برای کاربران عضو را مطالعه کنید.