Новости

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

WordPress — популярный блоговый движок. Кстати, сегодня (28 апреля 2009 года) wordpress’у исполняется 6 лет, как проекту. Поздравляем команду разработчиков нашей (по крайней мере для блогеров) любимой cms! Ну больше о нём я нечего вам не буду говорить т.к. сами знаете, а если не знаете, то без труда можете узнать на любом углу. Данная статья будет первой моей статьёй касаемо данной системы управления контентом (cms). Надеюсь, что помидорами не закидаете.

На wordpress можно сделать практически любой сайт, если обладать некоторыми навыками. Я сделал сайт видео концертов (www.livevids.ru) используя wordpress. Как вы заметили, если конечно посетили мой видео сайта, что все записи на сайте имеют почти одинаковую структуру т.е. как-бы сделаны по одному шаблону (8 строк html кода). Запомнить такой шаблон очень трудно, поэтому мне приходилось держать его сохранённым в текстовом документе и каждый раз копировать его от туда, что заставляет совершать лишние действия. К тому же, это не слишком удобно в плане каких-либо изменений в этом шаблоне. Поэтому, я решил избавиться от этой проблемы и сразу вспомнил форумы, а именно их ббкоды (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();
з.ы.ы. Заранее извиняюсь, если что-то не так, но это моя первая обучающая статья. Прошу понять. 🙂