0

WordPress + PHP = Love

Опубликовано: 20.12.2010 | Рубрика: Хитрости Wordpress

Долго не мог придумать название этой статьи. В итоге придумал такое вот интересное название – «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 рассылку.

Предыдущая
«
Следующая
»