ДОЧИТАЙТЕ ДО КОНЦА, КАК НЕЗНАНИЕ ИЛИ ПРЕНЕБРЕЖЕНИЕ К МАНУАЛАМ, ЗАСТАВЛЯЕТ ИЗОБРЕТАТЬ ВЕЛОСИПЕДЫ
Столкнулся я с проблемой, а как отобразить в посте не результат работы шорткода, а его вид в редакторе, т.е. его синтаксис. Для шорткодов, в том же самом блоге не используемых — все нормально. Но для тех шорткодов, которые в блоге используешь — возникает понятная проблема. Вставляешь шорткод в блог, и движок на место шорткода вставляет результат функции, его обрабатывающий. А задача стоит отобразить написание шорткода.
Отобразить синтаксис html-тегов проще, достаточно заменить угловые скобки «<» и «>» на эскейп-последовательности html. Для символов «[» и «]», заменяющих «<» и «>» для шорткода, я не нашел эксейп-последовательностей.
Звучит так же просто, как и делается.
Вставляем следующий php-код куда удобно, хоть в
functions.php
, хоть в отдельный плагин.Я сделал отдельный плагин, но можно и в файл функций, код небольшой:
<?php
/**
* Plugin Name: shortcodes display
*/
function display_shortcode($atts, $content=null)
{
$ret=$content;
return $ret;
}
add_shortcode ('shortcode','display_shortcode');
?>
ВНИМАНИЕ! Переменную $atts
нужно добавить обязательно, хотя она фактически не используется, т.к. у данного шорткода параметров нет, но так уж устроен движок WordPress, что без наличия первого параметра не обработается и параметр $content
Вставляете шорткод, синтаксис которого нужно отобразить, между открывающим и закрывающим псевдотегом shortcode.
Единственный минус — не работает для самих тегов для отображения синтаксиса шорткодов, посему ниже картинка с примером:
Результат работы:
Все делается гораздо проще, код шорткода заключается в дублирующиеся квадратные скобки, например [ljr user="hex_laden"], т.е. сам шорткод надо заключить не в одни скобки «[» и «]», а в дублирующие «[[» и «]]»
Благодарю злого анонимуса, который хотел постебаться, и случайно помог, хехе.