Оптимизация WordPress: чистый код вместо ненужных плагинов (часть1)

Friday, 21 Nov 08 в 1:58

php против плагинов wordpressЯ неоднократно говорил, что предпочитаю использовать обычный 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. Приглашаю заглянуть на MMGP.RU – не только форум о заработке в сети, а еще и сообщество профессионаров по инвестициям и финансам. Регистрация бесплатна, проект насчитывает уже 12000 пользователей!

Обратите внимание – разработка сайтов любой сложности: от интернет-магазинов до корпоративных порталов и промо проектов.
MakeUp интернет магазин парфюмерии доставка по Украине

Спонсор месяца:

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или twitter для блоггеров и вебмастеровtwitter!
Добавить комментарий

Комментариев - 18 для данного поста

  1. FitVibe Пишет:

    Отличная статья, спасибо! Но плагинами пользоваться удобнее имхо, а то код не туда вставишь еще – блог работать не будет…

  2. Аким Пишет:

    полезно )
    кстати если у кого используются в шаблоне старые вызовы previous_post и next_post заменять надо внимательно. например: previous_post(‘← %’) станет previous_post_link(‘← %link’,'%title’)

  3. Ruslan Пишет:

    Спасибо за инфу, как раз то что мне надо – блог загибается от нагрузки, а хостинг лимит уже не поднимает…

  4. vVv Пишет:

    использовал

    невыходит :(

    только текст поевляется, без ссылки

  5. Canya Пишет:

    Статья хорошая.. Вот только побольше бы функций описать

  6. Tod Пишет:

    Canya, все функции есть на официальном сайте wordpress.org, в статье лишь рассмотрены самые простые плагины. В будущем, я займусь этой системой еще более плотно, поэтому весьма вероятно напишу продолжение данной темы.

  7. drStas Пишет:

    вот интересно можно реализовать такую фишку что если пост первый в категории (самый новый, а не первый по публикации), то он ссылается на самый последний (опубликованый первым). Ведь если previous_post отсутствует, то просто не будет линка, а так хочется замкнуть кольцо :)

  8. Tod Пишет:

    drStas, с помощью PHP можно и не такое реализовать, я думаю. Можно даже плагины поискать, возможно, кому-то приходилось создавать нечто подобное.

  9. ZULI Пишет:

    Аналогично как и у vVv, выводит один текст, а ссылок на след. и пред. посты нет WP 2.8.4, плагинов никаких не установлено

  10. Оптимизатор Пишет:

    Я оптимизирую wordpress слежующим образом

    Основная внутренняя оптимизация:
    Урлы страниц (permalinks)
    Оптимизация тайтла под СЕ
    Оптимизация дескрипшена
    Оптимизация текста в теге more
    Оптимизация картинок и изображений в блоге

    Оптимизация шаблона (темплейта):
    Панировка
    Рубрики (категории)
    Чистка кода
    Усовершенствование скорости
    Реорганизация сайдбара

  11. SiR0Ga Пишет:

    Не знаю, лично я убрал почти все внешние ссылки в noindex, заполнил уникальным контентом, ничего лишнего, все нужные плагины и через пол года ТИЦ10 и ПР1 ;)

  12. @ ADv Пишет:

    Отображение иконок для категорий
    Затем в желаемом месте шаблона вставляем следующий код:….
    нельзя немного подробнее? куда именно вставлять? методом тыка не выходит :( пробовал в sideba.php рядом с кодом вывода категорий, не отображаются иконки

  13. Tod Пишет:

    ADv, посмотрел еще разок код – судя по всему, здесь код должен использовать в цикле wordpress Loop, то есть при выводе статьи блога будут отображаться еще и иконки категорий. Это вывод мета информации о посте, а не иконки к списку категорий в сайдбаре.

  14. Strikestar Пишет:

    Мне тоже понравилось, сейчас попробую иконки к рубрикам прикрутить, а так хотелось бы побольше всяких функций рассмотреть, которые можно реализовать без плагинов. Может будет продолжение?

  15. Tod Пишет:

    Strikestar, плагины не всегда плохо, как я думал раньше, иногда они экономят много времени. Можешь глянуть мой блог про wordpress там есть также парочка интересных статей.

  16. Strikestar Пишет:

    Tod, а разве этот не твой блог? :)

  17. Tod Пишет:

    Strikestar, мой, просто думал ты на него не заходил, вот и сказал, что про вордпресс пишу преимущественно там)

  18. Strikestar Пишет:

    Понятно, я и там был)

Оставить комментарий (правила комментирования)