После небольшого перерыва и полного разбирательства проблемы вставки в RSS-ленту кнопки ретвита, я продолжаю вести свой блог и сегодня напишу небольшой пост по ещё одному плагину для WordPress.
Плагин под названием WP-Syntax. Из названия поста, наверное, понятно уже, что плагин предназначен для выделения кода, написанного на различных языках, цветом и размещения его в отдельный блок. Примеры использования плагина вы можете увидеть на моём блоге в предыдущем посте и в этом тоже, только чуть ниже.
С установкой плагина ни у кого не должно возникнуть проблем, так как установка данного плагина ни чем не отличается от установки любого другого плагина.
Я же уделю внимание его использованию и настройке самого плагина.
Для того, чтобы использовать плагин, необходимо нужный код поместить в блок:
<pre lang="ЯЗЫК"></pre>Это минимум для работы плагина. Без параметра lang код подсвечиваться не будет. Но также блоку pre можно дать и другие параметры. Давайте рассмотрим все.
- LANG - язык, на котором написан код. Самые распространенные значение:
phpилиphp-brief,html4strict(значениеhtmlне работает),javaилиjava5иjavascript. ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР! - LINE - при значении 1 будут указываться также номера строк в коде, начиная с первой строки. Значение означает с какой строки начинать отсчет. При пустом значении или 0 их не будет.
- ESCAPED - при значении
trueзнаки<и прочие будут заменяться на<и прочие соответственно. Проще говоря, декодирование html-символов. При значенииfalseостанутся такими же.
А вот теперь о самой настройке. Никаких новых пунктов в админ-панели вы не увидите, так как плагин не имеет никаких настроек. Под настройкой я подразумеваю сейчас исправление некоторых недостатков и недочетов.
А недочет здесь один. При написании поста в визуальном редакторе самого WordPress нельзя вставить просто так нужный блок, поэтому приходится переключаться на HTML-редактор. После вставки блока и вписывания параметров, по сути, опять переключаемся на визуальный редактор. И вот тут проблема в том, что при обратном переключении пропадают параметры line и escaped. Поэтому нам придется заранее поставить для них нужное стандартное значение.
Для этого необходимо открыть файл wp-syntax.php в папке с плагином /wp-content/plugins/wp-syntax/. Все изменения будем производить в нем. Если точнее, то именно в функции wp_syntax_highlight.
1. Итак, чтобы присвоить по умолчанию параметру ESCAPED значение TRUE, то есть чтобы у вас по умолчанию происходило декодирование html-символов, необходимо заменить строку:
if ($escaped == "true") $code = htmlspecialchars_decode($code);
на следующую:
if ( (!$escaped) || ($escaped == "true") ) $code = htmlspecialchars_decode($code);
2. Чтобы у вас по умолчанию отображались номера строк, начиная с первой строки, необходимо заменить строку:
$line = trim($match[2]);
на строку:
$line = trim($match[2]) ? trim($match[2]) : "1";
Теперь у вас не будет возникать проблем с постоянной вставкой того или иного параметра.
Кстати, плагинов для подсветки кода достаточно много. А каким пользуетесь вы?
Выбор мебели в интернет-магазинах уже не является чем-то диким. Например, найти и заказать диваны киев сегодня очень просто, при этом вам доставят даже купленный вами диван.



Биржа ссылок Mainlink
Биржа ссылок Sape
Биржа статей Miralinks
Биржа статей Пресс-релизы.рф
Вечные ссылки GetGoodLinks
Продвижение сайтов с SeoWizard
Реклама в блогах RotaPost
19 комментариев
Как же меня бесила эта ошибка. Спасибо большое за решение этой проблемы.
Хотел переходить на SyntaxHighlighter Evolved, тоже хороший плагин. Но думаю оставлю уже WP-Syntax, так как проблема решена.
Александр, что-то ваш комментарий Акисмет за спам принял.
Не за что.
Им, родимым и пользуюсь. Посты всегда печатаю в HTML-редакторе, так что ошибка не напрягала, но все равно спасибо
Кому-то не понравился наверное
У меня тоже disqus много-кого за спам принимает.
Использую для подсветки SyntaxHighlighter, пока все устраивает
да ну можно и просто jQuery плагином обойтись, включив его в шаблон…
А на мой взгляд как-то уж очень муторно с кодом возиться.
axel, что за плагин такой?
Хэннер, ну кому как. Мне проще в коде 5 минут посидеть, чем каждый раз дописывать параметры лишние 😉
Я тоже давно пользуюсь этим плагином. Как же он меня бесит! И все из-за этого переключения. У меня порой при переключении либо часть кода теряется, либо совсем исчезает, поэтому код приходится вносить в последнюю очередь в пост, попробую ваш способ исправления ошибки, посмотрю, что из этого получится.
Ну, если бы еще и язык кода сам определял
Seodaiter, тогда придется дополнять сам функционал плагина.
Да и интересно, по каким критериям определять язык кода?
ну например в php имена переменных начинаются со знака $, и код заключен в понятные теги. html по тегам, самый распрастраненный это div, ну яваскипт тоже по тегам.
asm — по регистрам и операндам
c++ — ну я его плохо знаю, но всеже по некоторым функциям
delphi — по управляющим конструкциям(их синтаксис там ососбый)
basic — незнаю, хотя сейчас он мало где используется
Seodaiter, ну знак $ может быть использован и просто так в коде, для обозначения доллара, это не самая явная черта php. Также не всегда код заключают в сказанные вами теги, например, в этом посту я не заключал его в этот блок.
Так же в html не всегда используется блок div. Опять же пример из этого поста, где используется только pre блок.
Здесь, в общем-то, много нюансов и в этой теме долго надо разбираться, чтобы найти отличительные особенности того или другого языка.
Я пытался сделать, чтобы плагин подсвечивал код даже с пустым значением lang, которому можно было бы по умолчанию поставить какое-то значение, но мне этого не удалось на данный момент.
Плагин наверное хороший для вп. Но сам не пользуюсь данной cms’кой
У меня своя цмс на сайте и для подсветки синтаксиса также как и этот плагин использую библиотеку geshi.
Очень мощная библиотека, есть конечно и другие… Но геши превосходит их в разы.
CMS Лучшее решение для всех проблем
P.S хотя плагин довольно таки хороший
@ Леха, не понял к чему это было сказано…
Ой простите не CMS, а CSS
хехе….
Хороший плагин и супер подсказка, спасибо.
Благодарю за плагин.
Попробую на своем блоге