Отобразить шорткод WordPress в виджете elementor? - PullRequest
0 голосов
/ 03 февраля 2020

Я еще не знаком с WordPress, я хочу отобразить шорткод в самом виджете, но он показывает его как #text

<li><span>[My-shortcode].. 

Как я понимаю, я должен отредактировать код Пользовательская тема, но с чего мне начать? Может быть, есть какие-то обходные пути, чтобы заставить это работать? Плагины, которые автоматически определяют текст как шорткод? Если бы я мог набрать PHP в Wp Editor, я мог бы заставить его работать, есть идеи?

1 Ответ

0 голосов
/ 03 февраля 2020

Прежде всего: нет, вы не можете набрать код PHP в редакторе WP. Наиболее распространенные способы написания пользовательского кода в WordPress:

  1. Создание собственного плагина
  2. Создание дочерней темы, изменение функций дочерней темы. php

Для второго варианта, пожалуйста, следуйте официальному руководству на https://developer.wordpress.org/themes/advanced-topics/child-themes/.

Как только вы настроите его, активируете и получите пользовательские пустые функции. php файл в каталоге вашей дочерней темы, вы можете открыть файл functions. php и добавить следующий код:

function mytextdomain_myshortcode($attrs = array(), $content = null)
{
  $attrs = shortcode_atts( array(
      'value' => 'content'
  ), $attrs );
  ob_start();
?>
Write your own HTML code outputting <strong>some <?= $attrs['value'] ?></strong> here!
<?php
  return ob_get_clean();
}

// add the custom shortcode:
add_shortcode('myshortcode', 'mytextdomain_myshortcode');

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

После этого вы можете использовать [myshortcode] или [myshortcode value="custom text"] в любом месте, где оцениваются шорткоды. Вы можете добавить аргументы в зависимости от функциональности, которую вы хотите реализовать. Не используйте дефисы в коротких именах. Вы также можете просто превратить это в короткий код, выдав $content. В случае [myshortcode]This will end up in content![/myshortcode], $content будет содержать все между тегами шорткода. Или вы можете просто игнорировать контент все время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...