Долго не мог придумать название этой статьи. В итоге придумал такое вот интересное название – «WordPress + PHP = Love» Для чего собственно я пишу этот пост? Наверное для того, чтобы в очередной раз подтвердить слова моего друга Андрея Макарова о том, что иногда лучше подправить код в WordPress’e , чем устанавливать очередной плагин, который так или иначе будет уменьшать скорость загрузки Вашего блога.
В интернете можно найти множество советов по улучшению Вашего блога небольшим изменением кода в вордпрессе. Я выбрал наиболее интересные из них.
Ускоряем блог в 3 раза с помощью 2 строчек кода.
Как это сделать? Ответ прост – zlib компрессией (опция на Вашем хостинге, которая сжимает данные). Её мы как раз и используем в WordPress для ускорения блога.
Для начала проверим, включена ли эта опция у Вас на сервере. Для этого создаем файл (например proverka.php) и вставляем в него следующий код:
<?php phpinfo(); ?>
Сохраняем и заливаем файл через FTP в корневую папку Вашего блога. После этого переходим по ссылке:
http://ваш_сайт.ru/proverka.php
Получаем лист с характеристикой сервера Вашего блога. Находим блок zlib. Там должно быть написано enabled (опция включена). Если же написано disabled, то нужно обратиться на хостинг, чтобы её включили.
Теперь вставляем те заветные 2 строчки, которые ускорят Ваш блог. В файл header.php перед строчкой <!DOCTYPE html PUBLIC вставляем вот это:
<?php ini_set('zlib.output_compression', 'On'); ini_set('zlib.output_compression_level', '1'); ?>
Удаляем файл proverka.php (он нам теперь ненужен) и проверяем как изменилась скорость загрузки. У меня на хостинге почему-то так и не реализовался это фокус. Я хотел бы узнать, помог ли он Вам для ускорения загрузки блога?
Публикуем на блоге статистику постов и комментариев.
Сегодня увидел на одном блоге в сайдбаре статистику, которая выводила общее количество статей и комментов. Мне стало интересно, как можно реализовать такую фишку. Оказывается все очень просто – не нужно никаких плагинов! Открываем файл, где мы будем выводить статистику (к примеру sidebar.php) и вставляем этот код:
<?php $numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'"); if (0 < $numposts) $numposts = number_format($numposts); $numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'"); if (0 < $numcomms) $numcomms = number_format($numcomms); ?> <h2>Статистика сайта:</h2> <ul> <li>Количество записей на блоге: <?php printf(__('%1$s. </li> <li> Количество комментариев: %3$s '), $numposts, 'edit.php', $numcomms, 'edit-comments.php'); ?></li> </ul>
Если необходимо, то немного подправляем стиль заголовков.
Делаем список RSS для каждой рубрики.
Этот трюк больше подойдет для блогов с обширной тематикой. К примеру понравились мне статьи о спорте на каком-нибудь сайте. Я хочу быть в курсе последних новостей этой рубрики и подписываюсь на RSS-рассылку. Но кроме спорта на этом сайте публикуются статьи еще 10-20 тематик (лекарства, музыка, кино и прочий бред), которые мне будут неинтересны. Вот в этом случае нам и поможет список RSS рубрик – чтобы каждый мог получать новости только из определенной тематики. Для этого нужно вставить код в то место, где будет выводится список фидов:
<?php wp_list_categories('feed_image=http://www.ваш сайт.ru/image.gif&feed=XML Feed&optioncount=1&children=0'); ?>
http://www.ваш сайт.ru/image.gif – путь к картинке RSS, которая будет высвечиваться возле названия каждой рубрики. Создайте эту картинку и пропишите к ней правильный путь.
А если Вам захотелось подписаться на какую-нибудь рубрику на чужом блоге, а у него нет подобной «фишки»? Выход есть! К примеру Вы хотите подписаться только на рубрику «Начинающему блоггеру» на моем блоге. Вот как выглядит ссылка на эту рубрику:
http://sidash.ru/category/blogger/
Для получения фида этой рубрики нужно всего лишь вставить в конце ссылки «/feed»:
http://sidash.ru/category/blogger/feed
Очень просто и очень полезно :).
Контролируем время появления постов в RSS.
Вчера у меня произошел маленький казус: когда я экспериментировал с CSS, нечайно опубликовал статью с названием «444» (заранее извиняюсь перед своими подписчиками за такую оплошность). Хоть я моментально удалил эту статью, но все же она появилась в RSS фиде (про это мне сообщил мой друг Ahawks). «Не порядок» — подумал я. Все же потом я нашел выход из этого положения. Вставляем в файл function.php этот код:
function publish_later_on_feed($where) { global $wpdb;if ( is_feed() ) { $now = gmdate('Y-m-d H:i:s'); $wait = '5'; // Установка задержки $device = 'MINUTE'; // MINUTE (минута), HOUR (час), DAY (день), WEEK (неделя), MONTH (месяц), YEAR (год) $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'publish_later_on_feed');
Этот php-код добавляет 5 минутную задержку между опубликованием статьи на Вашем блоге/сайте и его появлением в rss-фиде.
Улучшаем поиск на вордпресс-блоге.
У вордпресс-блогов есть отличная функция поиска, но есть метод, как сделать его еще удобнее и привлекательнее. Я имею ввиду подсветку тех слов, которые мы ищем.
Вот здесь можно прочитать как все это организовать. Расписывать не хочу, так как в этом есть много своих положительных и отрицательных моментов.
Выводим записи из Вашей избранной рубрики.
Если Вы хотите выводить записи избранных рубрик в любом месте блога воспользуемся функцией query_post :
<?php query_posts('cat=3&showposts=6'); ?> <ul> <?php while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile;?> </ul>
Число 3 – это id избранной рубрики, а 6 – количество записей, которые нужно выводить.
Как видите сочетание WordPress + PHP и вправду дает неплохие результаты. Можно еще много чего писать про то, как улучшить свой блог без применения плагинов, но на сегодня пожалуй хватит. Надеюсь Вам пригодятся некоторые «фишки», про которые я написал выше.
Ну а я продолжаю делиться жирными ссылочками. Эта ссылка пропадет, когда появится новый пост. Жирные ссылки появляются только в новых статьях. Чтобы быть в курсе всех событий советую подписаться на мою RSS рассылку.
Испробовал метод «Ускоряем блог в 3 раза с помощью 2 строчек кода.»
Скорость загрузки действительно увеличивается. Ну не в 3 раз конечно. Но всё равно, лучше!
ну хоть кому-то помогло ускорить)
Интересная солянка вышла у Вас Дмитрий) Парочкой советов попробуем воспользоваться
спасибо, Артур)))мне особенно пригодились фокусы с RSS
Тоже есть пост, об ускорении блога Но увидел новые пункты у тебя, и в ближайшее время думаю сделаю доработки
«который так или иначе будет увеличивать скорость загрузки Вашего блога.», я думаю что здесь уместнее было бы сказать уменьшать скорость загрузки или увеличивать время загрузки, а то получается что при использовании плагинов скорость загрузки увеличивается, т.е. выполняется быстрее, хотя на самом деле скорость загрузки уменьшается.
подправил. спасибо)
Реально ускоряет, но не в 3 раза, примерно в 2-полтра!)
Огромное спасибо
ZLib Support enabled —
а вот — zlib.output_compression Off Off
так непонятно, включена ли функция или нет?
если Off, то выключена
Блог действительно стал быстрее работать. Спасибо вам большое.
«Ускоряем блог в 3 раза…»
А у меня в Header нет строчки .
Это одно и то же?
ну подобный код должен быть во всех шаблонах
Спасибо, полезный материал!)
Добавила две строчки кода — и сайт вообще перестал работать. Пришлось быстренько их удалить zlib enabled
Спасибо за совет по ускорению блога, реально помогло. Даже не ожидал, что так быстро будет загружаться. Вам бы этот совет в виде отдельной оптимизированной для ПС статьи выложить. Я про то, что бы поисковики на Вас выбрасывали, по запросу об ускорении блогов. А то в топе в основном чепуха всякая, или про плагины. А тут действительно стоящий совет новичкам. Еще раз спасибо.