В предыдущей заметке мы говорили о безопасности WordPress. Теперь переходим к написанию постов в блоге.
Визуальный редактор
Когда я впервые попытался написать пост, обнаружилась проблема. В WordPress вы пишете посты в редакторе, у которого есть два режима, между которыми можно переключаться: т. н. визуальный редактор (visual editor), работающий в режиме WYSIWYG и текстовый режим, в котором вы пишете непосредственно HTML-код. Так вот, в визуальном редакторе не отображалась панель инструментов, а перейти в текстовый режим было невозможно — соответствующая кнопка не работала. Текст в редакторе был белый и сливался с фоном. Минимальное решение проблемы заключалось в отключении визуального режима: в панели управления (dashboard) выбираем меню Пользователи->ВашЛогин->Редактор->Отключить визуальный редактор->Обновить профиль. Более основательное решение проблемы заключалось в добавлении в файл wp-config.php строки:
Для пущего удобства форматирования постов я установил плагин для текстового редактора TinyMCE Advanced. Он позволяет добавить дополнительные кнопки на панель инструментов визуального редактора. Позже выяснилось, что переключение между визуальным и текстовым режимами доставляет пользователю адскую боль, поскольку visual editor творит с вашим HTML-кодом какой-то беспредел, меняя его по собственному (совершенно кривому) усмотрению. TinyMCE Advanced я в итоге удалил, а визуальный редактор пришлось вообще отключить (как вариант, можно просто им не пользоваться). Несколько уменьшить неудобства отсутствия WYSIWYG-редактора помог плагин Inline Preview. После установки этого плагина кнопка Просмотреть изменения в редакторе отобразит панель просмотра со страницей вашего поста, причем изменения в редакторе будут отображаться в окне просмотра в режиме реального времени.
Очистка базы данных
WordPress сохраняет все редакции (revisions) ваших постов. Это захламляет базу данных, поэтому я хотел иметь возможность удалять редакции постов. По-умолчанию WordPress такой возможности не предоставляет, чтобы ее иметь, я установил специальный плагин WP-Optimize.
Ссылки
Постоянные ссылки
Допустим, вы написали пост. У поста есть постоянный URL (Uniform Resource Locator). Причем хотелось бы, чтобы этот URL был человекопонятным, так как и вам, и кому-либо еще, возможно, понадобится сослаться на этот пост. По-умолчанию ссылки на пост имеют формат http://example.com/?p=N, где N — это уникальный ID вашего поста (а example.com — это имя вашего сайта). Чтобы изменить это поведение в WordPress Dashboard выберите меню Настройки->Постоянные ссылки и выберите другой формат ссылок, например такой /%postname%/
(имя поста). /%postname%/
— это часть URL, которая называется «ярлык» (slug) и автоматически создается WordPress для каждого поста наоснове его заголовка. Вы можете задать ярлык вручную в меню Записи->НазваниеПоста->Свойства->Ярлык.
Однако после того, как я изменил таким образом настройки постоянных ссылок, при попытке просмотреть свой пост я получил ошибку 404 (страница не найдена).
Проблема решается так:
в файле httpd.conf раскомментируем строку (удаляем #)
чтобы активировать модуль сервера Apache под названием mod_rewrite, который используется «to rewrite requested URLs on the fly».
В том же файле httpd.conf находим директиву <Directory "c:/Apache24/htdocs">
. Внутри нее должна находиться директива AllowOverride FileInfo
. Если ее там нет, то добавьте ее. В моем файле httpd.conf это выглядит так:
AllowOverride FileInfo
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
После изменения файла httpd.conf надо перезапустить сервер Apache.
Абсолютные и относительные ссылки
Сплошь и рядом одни посты в блоге ссылаются на другие посты. В начале поста я могу написать
а в конце поста обычно пишу
То есть в тексте поста встречаются URL других постов. Я тестирую свой блог на локальном компьютере, я пока не зарегистрировал доменное имя для своего сайта и не знаю, какое оно будет. Как же я могу создавать ссылки на свои посты, если не знаю доменное имя (ведь доменное имя является частью URL)? Оказывается есть два вида ссылок: абсолютные и относительные. Абсолютные содержат полный путь к веб-странице, включая доменное имя. Относительные содержат путь относительно текущей веб-страницы, и этот относительный путь не содержит доменного имени. Поменяв в примерах выше абсолютные ссылки на относительные, я получу следующее:
Внешний вид ссылок
Я заметил, что ссылки в моих заметках не подчеркиваются, а только выделяются цветом, так что их почти не заметно на фоне остального текста. Я решил сделать их подчеркнутыми и знал, что для этого надо будет где-то подредактировать стили CSS (Cascading Style Sheets). В настройках темы я тут же наткнулся на меню Дополнительные стили, в котором имелся редактор для написания кода CSS. Я тут же написал:
text-decoration: underline;
}
Сохранив изменения, я увидел, что все ссылки на сайте стали подчеркнутыми. Выглядело это ужасно, на самом деле надо было изменить стиль ссылок только для текста постов. Поэтому я открыл первый попавшийся пост, просмотрел его html-код и увидел, что текст поста обернут в <div class="entry-content">...</div>
. Значит в приведенном выше CSS надо было написать:
text-decoration: underline;
}
Теперь ссылки стали подчеркнутыми только внутри текста постов.
Подсветка синтаксиса в исходном коде
Мой блог — о программировании, поэтому я собираюсь постить исходный код. Тут есть две проблемы.
-
Во-первых, если писать исходный код «как есть», он может неправильно восприниматься веб-браузерами. Банальный пример — знак «меньше». Он используется в html-коде как служебный символ, поэтому в тексте поста его приходится заменять на конструкцию
<
. Это специальная нотация для отображения тех символов, которые являются в html служебными. - Во-вторых, хочется иметь подсветку синтаксиса.
1-ю проблему можно решить, обернув свой код в теги
Но если вы хотите иметь подсветку синтаксиса, то нужен специальный плагин. Сначала я установил SyntaxHighlighter Evolved, так как он был самым популярным. Но чуть позже поменял его на другой плагин CodeColorer — он показался мне более удобным. После этого я мог писать исходный код как есть, оборачивая его в теги [cc]…[/cc]
В следующей заметке я представлю вам минимально необходимую с моей точки зрения подборку плагинов для WordPress.