add_shortcode()

add_shortcode( $tag, $callback )

Опис

Функція реєструє новий шорткод у темі або плагіні.

  • Назва шорткода має бути унікальна
  • Якщо зареєструвати 2 шорткоди з однією назвою,то пріорітет матиме останній

Parameters

  • $tag: (string) Required
    Назва шорткода. Не використовуйте квадратні дужки “[]” і використовуйте латиницю, наприклад “my_shortcode_something”
  • $callback: (callable) Optional
    Callback функція. Функція, що опрацьовує шорткод. Кожна така callback функція по дефолту отримує 3 параметри.
    • $atts: (array)
      Optional масив атрибутів шорткода
    • $content: (string)
      Optional Те що знаходиться між квадратними дужками шорткода, або null
    • $shortcode_tag: (string)
      Optional тег шорткода

Callback функція не повинна нічого виводити, тільки повертати значення

Приклади

Базовий шорткод

Шорткод, який покаже статичний текст.

<?php 

function wp_teka_basic_shortcode() {
    return "Hello, this is a basic shortcode!";
}
add_shortcode('wp_teka_basic', 'wp_teka_basic_shortcode');

// Приклад використання WP редакторі - [wp_teka_basic]
//  Приклад використання у коді - <?php echo so_shortcode('[wp_teka_basic]');?>

Шорткод з атрибутами

<?php 

function wp_teka_custom_message_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'message' => 'Дефолтна записка'
        ), 
        $atts
    );

    return "Ваше повідомлення: " . esc_html($atts['message']);
}
add_shortcode('wp_teka_custom_message', 'wp_teka_custom_message_shortcode');

// Згенерований шорткод - [wp_teka_custom_message]
// Приклад використання WP редакторі - [wp_teka_custom_message message="Хелоу Ворлд"]

Шорткод з контентом

Шорткод, який обгортає вміст, наданий користувачем.

<?php

function wp_teka_wrap_content_shortcode($atts, $content = null) {
    return '<div class="wp-teka-wrap">' . do_shortcode($content) . '</div>';
}
add_shortcode('wp_teka_wrap', 'wp_teka_wrap_content_shortcode');

// Приклад використання у WP редакторі - [wp_teka_wrap]Цей контент буде обгорнуто в дів з потрібними класами[/wp_teka_wrap]

Шорткод з динамічним контентом

<?php 

function wp_teka_datetime_shortcode() {
    return "Current date and time is: " . date('Y-m-d H:i:s');
}
add_shortcode('wp_teka_datetime', 'wp_teka_datetime_shortcode');

//  Приклад використання у WP редакторі - [wp_teka_datetime]
//  Приклад використання у коді - <?php echo so_shortcode('[wp_teka_datetime]');?>

Шорткод, який підключає темплейт парт

Це найбільш популярний варіант, як я додаю кастомний блок на сайт клієнта, якщо у нього до цього був пейдж білдер

<?php 

function wp_teka_shortcode_function( $atts ) {
	$attributes = shortcode_atts( array(
		'title' => false,
		'limit' => 4,
	), $atts );
	
	ob_start();

	// Додаємо темплейт парт з аругментами ($args параметер був доданий у WordPress v5.5.0)
	get_template_part( 'template-parts/wp-teka-the-shortcode-template', null, $attributes );

	return ob_get_clean();

}
add_shortcode( 'wp_teka_shortcode_template_part', 'wp_teka_shortcode_function' );
Disclaimer: Наразі шаблон сторінки трошки поламаний, скоро пофікшу. І давай будемо на "ти". Якщо ти дочитав до цього моменту і не знайшов те, що шукав в описі саме цієї функції - напиши мені в телеграм @codelibry щоб я це додав, а також скинь лінк того що саме ти шукав, якщо знайшов на іншому ресурсі. Дякую :)