Webamator Blog

Wordpress тормоз? Да здравствует правильный Wordpress!
MENU
Home » wordpress » Wordpress тормоз? Да здравствует правильный Wordpress!

Wordpress тормоз? Да здравствует правильный Wordpress!

Когдато данную инфу я публиковал на сатеклубе, а сегодня выпускаю так сказать, вторую редакцию – исправленную и дополненную. Скажу честно, после того как активно инсталил/знакомился/анинсталил популярные и не очень движки (а данный список является лишь вершиной айсберга), пытаясь подобрать лучший – пришел к выводу что наиболее функциональным из бесплатных оказался… Wordpress…
А существенный недостаток перед конкурентами у вордпресса всего один – это потребление ресурсов. Можно ли снизить этот аппетит?

Существует множество сборок Wordpress, каждая из которых из которых имеет свои отличительные особенности. Какая из них лучше? Думаю, что здесь будет уместно сравнение с женщинами. Лучшая – моя. Просто потому, что она моя.
В данной статье речь пойдет не о СЕО-примочках (думаю их лучше выложить в отдельной теме) а о том, как сделать “быструю” сборку Wordpress. Ниже перечислено, чем я руководствуюсь, чтобы сделать WP быстрее.

Часть 1 – лишние плагины
Я не знаю чем руководствовался Matt Mullenweg, но за проверку всех плагинов перед выводом следует ломать руки. Т.е. кроме нагрузки, которую создает плагин, дополнительную нагрузку создает сам Вордпресс! (точнее проверка – не появились ли обновления для плагинов). Хотя по-нормальному, такую проверку следует делать только для активированных плагинов.

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

Page-navi для постраничной навигации, Dagon Design Sitemap Generator для карты сайта, Sitemap Generator для sitemap.xml, Related Posts для вывода похожих записей, Simple Tags вообще непонятно для чего, виджет голосования, а также некоторые другие плагины, без которых на первый взгляд не обойтись.

Как бы возможности вкусные, отказываться не хочется… Можно ли найти альтернативу?

1. Page-navi
Что это такое, с чем его едят и как без него обойтись, я писал в статье “делаем постраничную навигацию“. Для тех кому лень идти по ссылке, просто приведу кусок кода:

<?php $max_page = $wp_query->max_num_pages;
$nump=5;//эта переменная отвечает за кол-во ссылок для навигации
if($max_page!=1){
$paged = intval(get_query_var('paged'));
if(empty($paged) || $paged == 0) $paged = 1;
if($paged!=1) echo '<a href="'.get_pagenum_link(1).'">&amp;amp;amp;laquo; Первая</a> ';
if($paged-$nump>1) $start=$paged-$nump; else $start=1;
if($paged+$nump<$max_page) $end=$paged+$nump; else $end=$max_page-1;
if($start>2) echo "... ";
for ($i=$start;$i<=$end+1;$i++)
{
if($paged!=$i) echo '<a href="'.get_pagenum_link($i).'">'.$i.'</a> ';
else echo '<span class="current">'.$i.'</span> ';
}
if($end<$max_page-1) echo "... ";
if($paged!=$max_page) echo '<a href="'.get_pagenum_link($max_page).'">Последняя &amp;amp;amp;raquo;</a>';
}
?> 

полтора десятка строк помогут навсегда забыть о тормозном и неуклюжем плагине

2. Карта сайта
С одной стороны нужная весЧ, с другой стороны если страниц пару сотен – вбивать их вручную не очень хочется…

Десяток строк выведут нам список страниц и постов:

<h3>Страницы</h3>
<ul>
<?php wp_list_pages('title_li=' ); ?>
</ul>
<h3>Записи</h3>
<?php query_posts('showposts=1000'); // showposts = кол-во постов ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>">
<?php the_title(); ?></a></li>
<?php endwhile;?>
</ul> 

Если сайт (вернее ГС) не обновляется то есть альтернатива – просматриваем карту сайта ввиде хтмл, а затем копипастом вставляем ее в хтмл-режиме в одну из страниц ВП

3. sitemap.xml
если сайт не обновляется со скоростью сми2 или ньюзленда, то я просто не понимаю – почему бы не воспользоваться каким-либо сторонним сервисом или софтиной для генерации сайтмап

4. Related Posts
Монстр, от которого следует отказаться в первую очередь. Более легкая замена описана в статье “похожие записи“. Еще более легкая замена получится всего в несколько строк, если в качестве “похожих” выводить посты из этой же рубрики:

<?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; ?>
<h4>Похожие новости:</h4>
<ul>
<?php $myposts = get_posts('numberposts=6&offset=0&exclude='.$id.'&category='.$cat->cat_ID);
// numberposts - кол-во постов, почему-то привык ставить 6
foreach($myposts as $post) : ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul> 

5. Simple Tags
А нафик он вообще нужен? Похожие новости у нас уже есть, а метки являются штатной возможностью и выводятся всего одна строкой

<?php wp_tag_cloud(); ?>

6. Голосования
Берем простейший скрипт голосования, не успользующий MySQL, зато выводящий результаты с помощью модного AJAX, либо другой аналогичный.

Часть 2 – замена пхп хтмлом

Так, от плагинов отказались – теперь самое время отказаться от лишних проверок/запросов в самом шаблоне:
всякие некрасивые слова в шаблоне вроде

<?php bloginfo('html_type'); ?>
<?php bloginfo('charset'); ?>
<?php bloginfo('name'); ?>
<?php bloginfo('template_directory'); ?>
<?php echo get_option('home'); ?>
<?php bloginfo('home'); ?>
<?php bloginfo('url'); ?>
<?php bloginfo('description'); ?> 

Скажите, вы часто меняете кодировку на своем блоге? А название блога? А адрес? Подобные вещи как правило делаются всего один раз, поэтому все перечисленные конструкции просто заменяем на их хтмл-аналоги. Можно также заменить и синдикацию

<?php bloginfo('comments_rss2_url'); ?>
<?php bloginfo('rss2_url'); ?> 

В принципе, для сателитов ее можно безболезненно удалить. Кто будет подписываться на рсс-ленту сателита? Правда на сатеклубе мне сделали замечание – мол, RSS нужна для прогона по RSS-каталогам… Если вы всерьез верите, что RSS-каталоги принесут сателиту пользу, используйте html вместо php – отказ от двух лишних функций сделает ваш сателит чуточку быстрее. Не забывайте, что после этого шаблон неверно будет работать на других доменах (при переносе на другой домен просто меняем ссылку).

Часть 3 – скрипты и стили

Автоматически уменьшаем размер CSS

Автоматически уменьшаем размер JavaScript

Учтите, если ваш шаблон использует что-то типа jquery, сжимать его бесполезно, т.к. он уже сжат. Однако выход есть – чтобы не грузить библиотеку весом в полсотни кило со своего ресурса, мы можем воспользоваться гуглом. Благо добрый Гоша позволяет загружать jquery со своего сервера. Просто ищем, где наш шаблон обращается к jquery и меняем на

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>

Popularity: 11%

Добавлено 17 августа 2010
Рубрика: wordpress
Метки: ,

Если данный пост показался вам полезным или интересным, нажмите на одну из кнопок ниже - от vkontakte, facebook, tweeter или google+, чтобы о нем узнали ваши друзья. Спасибо!

Также рекомендую публикации, похожие на "Wordpress тормоз? Да здравствует правильный Wordpress!"

SLON – пример плагина

Повторное подключение JavaScript приводит к его повторному выполнению, то есть к проблеме производительности сайта. Кроме того, это может привести к неприятным побочным эффектам – например, если данный скрипт [...]

Single Load Only. Избавляемся от дублирования js

В данной статье я расскажу об одной из проблем Wordpress – повторному подключению javascript. Подключение скрипта несколько раз приводит к его повторному выполнению, т.е. страдает производительность. Кроме того, [...]

Что нового в WordPress 4.8

WordPress Version 4.8, названная «Evans» в честь джазового пианиста и композитора Уильяма Джона «Bill» Evans, доступна для загрузки или обновления на панели инструментов WordPress 8 июня 2017 года. [...]

Что нового в WordPress 4.7

WordPress 4.7 посвящен Саре Воан, известной джазовой певице середины прошлого века. В отличие от предыдущих обновлений, новогодний релиз WordPress 4.7 получился действительно потрясающим с большим количеством приятных нововведений, [...]

2 комментариев

2 комментариев


RSS feed for comments on this post.

Leave a comment