@sergeev_ev

Как добавить шорткод в одно из полей плагина wordpress?

Доброго времени суток!
Задача:
Есть список услуг на сайте.
При клике на услугу появляется список доп. услуг относящихся к ней.
Выводится это добро с помощью плагина "simple-site-services".
Нужно добавить возможность, чтобы любое слово из этих списков услуг и доп. услуг можно было сделать кликабельным, т.е. обернуть в тег "a".
Например: [Хостинг] наших патнеров.
И вот слово обёрнутое в админке в квадратные скобки на сайте стало отображаться ссылкой и переходить на ?s=хостинг.
Думал шорткод поможет но пока ничего не получается сделать, т.к. знаю только как шорткод выводить в стандартных полях вордпрес.
  • Вопрос задан
  • 291 просмотр
Решения вопроса 1
@sergeev_ev Автор вопроса
Моё решение:
нашел файл отвечающий за вывод и подправил вывод текста.
<?php 
// Получаем слово в скобках [], чтобы идентифицировать его
// и сделать ссылкой;
preg_match("/\[[^\]]*\]/", $old_text, $word_in_brackets);
if (isset($word_in_brackets[0])) {
	  $word_not_brackets = trim($word_in_brackets[0], '['); 
	  $word_not_brackets = trim($word_not_brackets, ']');
	  $strRpl = str_replace($word_in_brackets[0], '<a href="/?s='. $word_not_brackets .'" target="_blank">'.     $word_not_brackets .'</a>', $old_text);
   echo $strRpl;
}else{
   echo $old_text;
}                                            
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
С этим плагином я не знаком, но могу рассказать, как это делается с кастомными полями в Advanced Custom Fields.
1) Вам необходимо в functions создать шорткод. Что-то типа [a] Хостинг [/a]. С учетом того, что вам также нужно будет в шорткод добавить ссылку, то можно сделать его вида
[a] Хостинг [link] ссылка_на_сайт [/link ][/a] подробнее об Апи шорткода:
https://codex.wordpress.org/Shortcode_API
2) В случае с advanced custom fields, если шорткод просто вставить в это поле, то он так и выведется в виде шорткода, а не "исполнится". Чтобы этого не было вам нужно использовать в шаблоне echo do_shortcode()
https://developer.wordpress.org/reference/function...
https://wp-kama.ru/function/do_shortcode
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы