PHP

Создаем BBCode для WordPress

Для того, чтобы внедрить в шаблон wordpress возможность обрабатывания ббкода (производить замену определённого «тэга» на html код), необходимо внести изменения всего в один файл — functions.php. Приступим.

  1. Откроем файл functions.php и в конце добавим код приведённый под данным списком.
  2. Сохраним и закроем файл functions.php — редактирование файла завершено.
  3. Радуемся новым возможностям вашего шаблона
add_filter(‘the_content’, ‘bbco’); // Выполняем функцию bbco перед окончательным выводом поста функцией the_content
function bbco($content) { // Создаём функцию bbco
    if (strstr($content,'[url]’) === false) return ».$content.»; // Проверяем наличие тэга в тексте. Если тэг присутсвует, то выполняем код ниже, а если нет, то выводим пост.
    $content=preg_replace(«/\[url\](.*?)\[\/url\]/is», «<a href=\»\\1\» \target=»_blank\»>\\1</a>», $content); // Ищем текст, расположенный между [url] и [/url], а затем делаем из него ссылку.
    return $content; // Возвращаем обработанный пост
}

Вот и всё! Всё оказалось очень просто. Вы можете без проблем изменить данный код и приспособить его под себя. Надеюсь, что вам поможет данная статья. Если будут какие-то вопросы — обращайтесь. гг

з.ы. Данный ббкод будет обрабатываться везде, где стоит функция the_content();
з.ы.ы. Заранее извиняюсь, если что-то не так, но это моя первая обучающая статья. Прошу понять. 🙂

  • «з.ы. Данный ббкод будет обрабатываться везде, где стоит функция the_content();»
    т.е. будет доступна и в комментариях?

  • Нет. Имелось в виду, что код будет выполняться везде, где контент выводится функцией the_content(). Комментарии выводятся другой функцией.
    Также, бб коды не будут работать, если вы выводите содержимое поста функцией the_excerpt()

  • А, теперь понял 🙂 спасибо за ответ

  • Не за что. 😎