Вордпресс shortcode. Собственные шорткоды в WordPress: создание, подключение, использование. WordPress шорткод — кто ты

Шорткоды - это разный текст, который заключается в квадратные скобки. В WordPress они являются самым эффективным способом вставить внутрь записи определенный текст, блок или другой элемент. Давайте рассмотрим как создать простейшие шорткоды для своего сайта.

Создать свой шорткод очень просто, если вы хоть немного разбираетесь в правилах написания функций для WordPress. Дело в том, что сначала нужно прописать функцию, присвоить ей название и действие, а потом назначить шорткод и привязать его к этой функции. Давайте попробуем создать простейший шорткод, который будет вызывать текст. Даже такой простой код может понадобится, если вам надо внутри записи постоянно вставлять какой-то длинный текст.

Как и со всеми функциями, добавление осуществляется в файл functions.php , в самый его конец, но перед закрывающим тегом ?> . Назовем функцию text_short . Внутри нее добавим нужный текст, который потом выведем вызовом.

Function text_short() { return "Любой нужный текст. который нужно выводить внутри текста Вашей записи."; }

Это еще не конец. Это просто функция и ее нужно еще превратить в шорткод. Для этого, сразу после нашей функции, нужно добавить функцию add_shortcode , в которой мы и создадим наш шорткод. Готовая строка будет иметь такой вид:

Add_shortcode("ts", "text_short");

Внутри функции add_shortcode, два названия. ts - это название шорткода, который будем вызывать. Название может быть любым, каким Вы его придумаете. text_short - это название функции, которую мы придумали для вывода текста. Готовый код целиком выглядит следующим образом:

Function text_short() { return "Любой нужный текст. который нужно выводить внутри текста Вашей записи."; } add_shortcode("ts", "text_short");

Шорткод создан, теперь нужно его вызвать для вывода. Когда будете писать текст записи просто добавьте вот такой вот вызов.

Вот так все просто.

  • Создаем функцию
  • Делаем ее шорткодом
  • Вызываем внутри записи
  • Function reklama() { return " (adsbygoogle = window.adsbygoogle || ).push({}); "; } add_shortcode("rek_sh", "reklama");

    И шорткод

    Это легкие шорткоды и суть их проста. Можно создавать и по сложнее. Например сделать шорткод, который будет задавать стили, например для выделения какого-нибудь текста или отдельного слова. Довольно удобная вещь, если постоянно нужно выделять что-то, а стандартного редактора мало.

    Создаем шорткод

    Function gb_bgrnd($attr,$content= null){ return" .redbg{ background-color: #f00; padding:3px 5px;} ".$content.""; } add_shortcode("gbb_sh", "gb_bgrnd");

    Данный шорткод будет выделять заключенный в него текст. Он будет иметь красный фон. Можете задать свои стили. Чтобы все работало, заключите нужный текст в шорткод, например так:

    Текст что будет выделяться

    Для вызова шорткода нужно просто написать в нужном месте записи:

    Как вставить шорткод в виджет WordPress

    Иногда бывают такие случаи, что шорткод нужно вывести не в тексте записи а в других местах Вашей темы. таким местом может оказаться, например, текстовый виджет. По умолчанию этого сделать нельзя, но добавив фильтр, этот вопрос можно решить. Добавьте в functions.php такую строку:

    Add_filter("widget_text", "do_shortcode");

    Как вывести шорткод в любом месте темы WordPress

    Как и с виджетами, обычным способом это не сделать. Так что нужно применять маленькую хитрость. В нужном месте темы, нужно вставить вот такой код, внутри которого вставлять название шорткода.

    Еще встречаются шорткоды немного иного вида от плагинов. Все они выводятся в записи, но вдруг нужно сделать это вне ее. это касается шорткодов типа:

    У них вид как у закомментированного текста. поэтому стандартные методы не подойдут. Такие шорткоды использует, например, плагин - WpShop . Для вывода таких шорткодов от плагина, нужно использовать такой способ с фильтром:

    В принципе все, что я хотел показать. Если применить фантазию и определенные навыки, можно сделать нужные Вам шорткоды и вывести там где захотите. Это полезный функционал, который может облегчить Вам работу с блогом WordPress.

    Используете ли Вы шорткоды у себя на сайте?

    На этом все, спасибо за внимание. 🙂

    Добавляет новый шоткод и хук для него.

    Для каждого шоткода может быть создана только одна функция обработчик. А значит, если другой плагин использует такой же шоткод, то ваша функция будет заменена на другую или наоборот (зависит от того в каком порядке подключаются функции).

    Если у шоткода есть атрибуты, то они преобразовываются в нижний регистр, перед тем как, передаются в функцию. Значения не затрагиваются.

    Результат, который возвращает функция (обработчик шоткода) всегда должен возвращаться, а не выводиться на экран.

    Шоткоды - это конструкция вида: или или текст в тексте, которые будут заменены другим текстом созданным функцией-хуком отвечающим за шоткод.

    Видео о шорткодах в WordPress:

    Хуков нет.

    Возвращает

    Ничего не возвращает.

    Использование add_shortcode($tag , $func); $tag(строка) (обязательный)

    Название шоткода, который будет использоваться в тексте. Например: "gallery".

    В названии нельзя использовать пробелы и нестандартные символы вроде: & / < > = .
    По умолчанию: нет

    $func(строка) (обязательный)

    Название функции, которая должна сработать, если найден шоткод.

    Функция получает 3 параметра, каждый из них может быть передан, а может нет:

      $atts (массив)
      Ассоциативный массив атрибутов указанных в шорткоде.
      По умолчанию: "" (пустая строка - нет атрибутов)

      $content (строка)
      Текст шорткода, когда используется закрывающая конструкция шорткода: текст шорткода
      По умолчанию: ""

    • $tag (строка)
      Тег шорткода. Может пригодится для передачи в доп. функции. Пр: если шорткод - , то тег будет - foo .
      По умолчанию: текущий тег

    По умолчанию: нет

    Примеры #1. Пример регистрации шоткода : function footag_func($atts){ return "foo = ". $atts["foo"]; } add_shortcode("footag", "footag_func"); // результат: // шоткод в тексте будет заменен на "foo = bar" #1.2. Установка белого списка атрибутов шорткода

    Для того чтобы шорткод мог иметь только указанные нами параметры и у этих параметров были значения по умолчанию, нужно использовать функцию shortcode_atts() :

    Add_shortcode("bartag", "bartag_func"); function bartag_func($atts){ // белый список параметров и значения по умолчанию $atts = shortcode_atts(array("foo" => "no foo", "baz" => "default baz"), $atts); return "foo = {$atts["foo"]}"; }

    #2. Регистрация шорткода с контентом

    Пример создания такого шоткода: здесь текст :

    Add_shortcode("baztag", "baztag_func"); function baztag_func($atts, $content) { return "content = $content"; } // результат: // конструкция шоткода будет заменена на "content = здесь текст"

    #3. Регистрация шоткода для классов

    Если ваш плагин написан классом:

    Add_shortcode("baztag", [ "MyPlugin", "baztag_func" ]); class MyPlugin { static function baztag_func($atts, $content) { return "content = $content"; } }

    #4 Вставка iframe через шорткод

    Этот пример показывает как создать шорткод, чтобы потом через него вставлять iframe.

    Function Generate_iframe($atts) { $atts = shortcode_atts(array("href" => "http://example.com", "height" => "550px", "width" => "600px",), $atts); return "

    Your Browser does not support Iframes.

    "; } add_shortcode("iframe", "Generate_iframe"); // использование:

    #5 Вывод записи по ID через шорткод

    Получим пост по ID, используя шорткод в файле темы functions.php .

    Add_shortcode("testimonials", "testimonials_shortcode_handler"); function testimonials_shortcode_handler($atts){ global $post; $rg = (object) shortcode_atts([ "id" => null ], $atts); if(! $post = get_post($rg->id)) return ""; $url = wp_get_attachment_url(get_post_thumbnail_id($post->ID)); $out = " logo) . "" alt="icon" />

    ". get_the_content() ."

    author_image) ."" alt="image">

    ". esc_html($post->author_name) ." ". esc_html($post->author_designation) ."

    "; wp_reset_postdata(); return $out; }

    Заметки
    • Global. Массив. $shortcode_tags
    Список изменений
    С версии 2.5.0 Введена.
    Код add shortcode : wp-includes/shortcodes.php WP 5.2.3