Оптимизация WordPress: чистый код вместо ненужных плагинов (часть1)
Я неоднократно говорил, что предпочитаю использовать обычный PHP код или функции WordPress вместо установки разных «непонятных» плагинов. Наткнулся недавно на статью об оптимизации WordPress с помощью замены подобных бесполезных плагинов на обычные вставки кода. Ведь при использовании большого их числа ваш сайт может заметно «сдать» в производительности. Сюда можно отнести простые задачи — как-то редирект фида, отображение рандомного контента, вывод информации из базы данных. Причем все вставки «альтернативного кода», которые будут приведены в статье не требует редактирования файлов самой системы, а лишь правку шаблона (темы). Поэтому вы можете практически не беспокоится насчет обновления блога — оно ваш код не затронет. В некоторых случаях придется подправить файл htaccess, но, думаю, это не большая проблема.
Предыдущий и следующий пост в выбранной категории
Возможность навигации по постам в пределах одной категории — достаточно полезная функция. До версии wordpress 2.х ее обеспечивал специальный плагин. Сейчас вы запросто можете использовать следующий код, который встроен в ядро системы:
<?php previous_post_link('format', 'link', in_same_cat, 'excluded_categories '); ?> | <?php next_post_link('format', 'link', in_same_cat, 'excluded_categories '); ?> |
Здесь используются следующие параметры:
- format (строка) — позволяет задать форматирование строке со ссылкой, поставив свой текст до и (или) после переменной %link. Например, вы можете использовать значение ‘Следующий пост в этой категории: %link »’.
- link (строка) — параметр определяет текст для ссылки. По умолчанию это заголовок поста, хотя вы можете добавить любое значение до и (или) после переменной %title.
- in_same_cat (boolean) — ключевой параметр дабы код для замены плагина сработал. Если он установлен в TRUE, то обрабатываются только посты в той же категории. Учтите, что значение FALSE установлено по умолчанию.
- excluded_categories (строка) — с помощью данного параметра вы можете исключить из навигации некоторые категории. Например, если вы хотите чтобы посты из категории под номером 6 не принимали участие в работе, просто вводите цифру 6. Для множественного исключение нескольких категорий перечислите их ID через запятую.
Отображение иконок для категорий
Добавление иконок к категориям — хороший способ добить блогу некоторую изюминку. Есть некоторые замечательные плагины для реализации данной идеи, но использовать их вовсе не обязательно! Вместо этого создайте набор иконок (или поищите здесь) и назовите их именами ваших категорий — лучше всего просто скопировать названия категорий (вместе с пробелами, дефисом, большими, маленькими буквами). Причем для всех файлов изображений нужно использовать одно расширение — например, png. После этого создайте в корневой директории вашей wordpress темы папку icons и залейте туда все иконки.
Затем в желаемом месте шаблона вставляем следующий код:
<img src="<?php bloginfo('template_directory'); ?>/icons/<?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; ?>.png" alt="Category Icon" /> |
С помощью этих строк будут выводиться иконки для всех категорий, которые есть в вашем блоге. Для блогов, где каждый пост записывается в отдельную категорию (хотя я такого не встречал) можно использовать альтернативный код:
<?php foreach((get_the_category()) as $cat) { echo '<img src="bloginfo('template_directory'); ?>/icons/' . $cat->cat_name . '.png" alt="Category Icon" />'; } ?> |
Отображение иконки автора поста
Еще один хороший способ красиво настроить блог — автоматически отображать иконки для авторов постов. Особенно этот трюк пригодится для коллективных блогов с большим числом писателей. Вместо избыточных плагинов можно использовать тот же метод, что и в предыдущем посте, заменив предварительно имена файлов с категорий на логины авторов.
После чего вставляете в шаблон следующий код:
<img src="<?php bloginfo('template_directory'); ?>/icons/<?php the_author('login'); ?>.png" alt="Icon for: <?php the_author(); ?>" /> |
Данный исходный код выводит лишь изображение, но вы запросто можете его немного подправить, добавив свои какие-то нюансы. Если обратите внимание, в нем есть функция для вызова имени автора.
Продолжение следует…
P.S. Обратите внимание — разработка сайтов любой сложности: от интернет-магазинов до корпоративных порталов и промо проектов.
MakeUp интернет магазин парфюмерии доставка по Украине.
Отличная статья, спасибо! Но плагинами пользоваться удобнее имхо, а то код не туда вставишь еще — блог работать не будет…
полезно )
кстати если у кого используются в шаблоне старые вызовы previous_post и next_post заменять надо внимательно. например: previous_post(‘← %’) станет previous_post_link(‘← %link’,’%title’)
Спасибо за инфу, как раз то что мне надо — блог загибается от нагрузки, а хостинг лимит уже не поднимает…
использовал
невыходит :(
только текст поевляется, без ссылки
Статья хорошая.. Вот только побольше бы функций описать
Canya, все функции есть на официальном сайте wordpress.org, в статье лишь рассмотрены самые простые плагины. В будущем, я займусь этой системой еще более плотно, поэтому весьма вероятно напишу продолжение данной темы.
вот интересно можно реализовать такую фишку что если пост первый в категории (самый новый, а не первый по публикации), то он ссылается на самый последний (опубликованый первым). Ведь если previous_post отсутствует, то просто не будет линка, а так хочется замкнуть кольцо :)
drStas, с помощью PHP можно и не такое реализовать, я думаю. Можно даже плагины поискать, возможно, кому-то приходилось создавать нечто подобное.
Аналогично как и у vVv, выводит один текст, а ссылок на след. и пред. посты нет WP 2.8.4, плагинов никаких не установлено
Я оптимизирую wordpress слежующим образом
Основная внутренняя оптимизация:
Урлы страниц (permalinks)
Оптимизация тайтла под СЕ
Оптимизация дескрипшена
Оптимизация текста в теге more
Оптимизация картинок и изображений в блоге
Оптимизация шаблона (темплейта):
Панировка
Рубрики (категории)
Чистка кода
Усовершенствование скорости
Реорганизация сайдбара
Не знаю, лично я убрал почти все внешние ссылки в noindex, заполнил уникальным контентом, ничего лишнего, все нужные плагины и через пол года ТИЦ10 и ПР1 ;)
Отображение иконок для категорий
Затем в желаемом месте шаблона вставляем следующий код:….
нельзя немного подробнее? куда именно вставлять? методом тыка не выходит :( пробовал в sideba.php рядом с кодом вывода категорий, не отображаются иконки
ADv, посмотрел еще разок код — судя по всему, здесь код должен использовать в цикле wordpress Loop, то есть при выводе статьи блога будут отображаться еще и иконки категорий. Это вывод мета информации о посте, а не иконки к списку категорий в сайдбаре.
Мне тоже понравилось, сейчас попробую иконки к рубрикам прикрутить, а так хотелось бы побольше всяких функций рассмотреть, которые можно реализовать без плагинов. Может будет продолжение?
Strikestar, плагины не всегда плохо, как я думал раньше, иногда они экономят много времени. Можешь глянуть мой блог про wordpress там есть также парочка интересных статей.
Tod, а разве этот не твой блог? :)
Strikestar, мой, просто думал ты на него не заходил, вот и сказал, что про вордпресс пишу преимущественно там)
Понятно, я и там был)
Большое спасибо за полезную статью! Скажите пожалуйста, а в какой файл нужно вставлять код для вывода иконок перед категориями?
Андрей, зависит от того где у вас будут отображаться категории — если в шапке, то в header.php, если в боковую колонку, то sidebar.php и т.п.