Блог компьютерщиков

GSNEWS.RU

Блог компьютерщиков GSNEWS

Оптимизация WordPress

Янв 24, 2012
автор admin.
Комментировать

Обсудим оптимизацию сайта на WordPress. Материала по этой теме настолько много, сто оптимизировать в wordpress можно практически всё, начиная от вебсервера и заканчивая базой данных. Однако в последнее время знакомые блоггеры всё чаще обращаются ко мне за помощью по этому вопросу и я решил написать ряд обзорных статей.

Прежде всего следует заняться базой данных, оптимизировать её таблицы. Для этого открываем phpMyAdmin, выбираем требуемую базу данных, затем из доступных команд выполняем оптимизацию таблиц.

Эти действия ускорят обработку сервером запросов к таблицам базы данных, и таким образом уменьшат нагрузку на сервер. Если вы пользуетесь слишком старой версией phpMyAdmin, у вас может отсутствовать пункт “отметить требующие оптимизации”. В таком случае просто отмечаете все таблицы и выполняете команду “оптимизировать”.

Следует пересмотреть список используемых плагинов, и деактивировать все ненужные, в особенности несовместимые с используемой версией движка wordpress, они зачастую могут работать не вполне корректно.

Удаляем из хедера три совершенно ненужные вещи: версию движка и предназначенные для взаимодействия с блог-клиентами ссылки. Редактируем functions.php, добавляя в него строки:

< ?php remove_action(‘wp_head’, ‘wp_generator’); ?>

< ?php remove_action(‘wp_head’, ‘wlwmanifest_link’); ?>

< ?php remove_action(‘wp_head’, ‘rsd_link’); ?>

Отключает сохранение ревизий постов без плагина. Для этого в файл wp-config.php добавляем такую строку:

define(‘WP_POST_REVISIONS’, false);

Для удаления ранее сохранённых ревизий надо сделать следующее:

DELETE a,b,c

FROM wp_posts a

LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)

LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)

WHERE a.post_type = ‘revision’

Хотя, если недостаточно знакомы с системой, лучше этого не делать.

Устанавливаем плагин WP Super Cache (или активируем его, если он уже присутствует в вашей сборке wordpress).

В файле wp-config.php заменяем строку define (‘WPLANG’, ‘ru_RU’); на следующее:

if (strpos($_SERVER['REQUEST_URI'], ‘wp-admin’))

define (‘WPLANG’, ‘ru_RU’);

else

define (‘WPLANG’, ‘ru_RU_lite’);

Проверьте используемую тему на предмет наличия плагинов типа Similar Posts, Popular Post. Их совершенно безболезненно можно заменить более лёгким кодом. Например, плагин Popular Posts можно заменить, добавив в файл sidebar.php такой код:

<li><h3>Популярные записи</h3>
<ul>
<?php
$popular_posts = $wpdb->get_results(“SELECT id,post_title
FROM {$wpdb->prefix}posts ORDER BY comment_count DESC LIMIT 0,10″);
foreach($popular_posts as $post) {
print “<li><a href=’”. get_permalink($post->id) .”‘>”.$post->post_title.”</a></li>\n”;
}?>
</ul>
</li>

А для отображения схожих постов добавляем в single.php такое:

<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
‘tag__in’ => $tag_ids,
‘post__not_in’ => array($post->ID),
’showposts’=>5, // Количество записей для вывода.
‘caller_get_posts’=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo ‘<h3>Похожие публикации</h3><ul>’;
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Постоянная ссылка на <?php the_title_attribute(); ?>”><?php the_title(); ?></a></li>
<?php
}
echo ‘</ul>’;
}
}
?>

Теперь избавимся от ненужных мета-тегов в хедере

При использовании в шаблоне функции wp_head() вы довольно быстро обнаружите, как применяющие хуки этой функции плагины (например All in the SEO) засорят блок множеством ненужных мета-тегов, ссылок на категории RSS и прочим мусором. От всего этого избавиться совсем несложно.

Для этого потребуется отредактировать файл functions.php (или создать его, если он ещё не создан), и добавить в него такой код:

< ? remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'wlwmanifest_link'); remove_action( 'wp_head', 'feed_links_extra'); remove_action( 'wp_head', 'feed_links'); remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'parent_post_rel_link'); remove_action( 'wp_head', 'start_post_rel_link'); remove_action( 'wp_head', 'adjacent_posts_rel_link'); ?>

Сделав это, вы удалите из блока 9 ненужных строк.

Вывод постов с применением query_posts()

query_posts($query) использует для получения записей обращение к конструктору запросов $query. То есть, при необходимости, скажем, вывести 7 записей из определённой категории достаточно указать:

query_posts(‘cat=3&showposts=7&orderby=date’);

И затем, как обычно вsвести их циклом:

// the Loop
<? while (have_posts()) : the_post();?>
<a href=”<?php the_permalink() ?>”><?php the_title(); ?></a>
<? endwhile;?>

Откуда же могут возникнуть сложности? Дело в том, что при добавлении такого кода, скажем, в шаблон шапки сайта, сайт перестанет правильно отображаться. Проблема в том, что совершенно такие же циклы присутствуют у вас и в шаблоне страницы и в шаблоне отдельной записи, и все они унаследуют заданный запрос query_posts().

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

<? $my_query = new WP_Query(‘cat=3&showpost=5&orderby=date’);
while($my_query->have_posts()) : $my_query->the_post(); ?><li><a href=”<?php the_permalink() ?>”><?php the_title(); ?></a></li>
<? endwhile; ?>

Приведённый кусок кода обеспечивает то, что цикл в шапке будет запускаться исключительно по запросу $my_query, который не будет использоваться в других циклах, в шаблонах страницы или поста.

Вывод нескольких блоков навигации

Если вы хотите вывести на странице несколько блоков навигации, скажем мены слева, верхнее меню и т.д., сделать это можно с применением произвольных полей. Не беспокойтесь, в этом разделе много кода не будет ;)

Сделать это совсем несложно, применив встроенную конструкцию wp_list_pages(), передав ей в качестве параметра название требуемого поля meta_key, скажем, так:

< ?php wp_list_pages('sort_column=menu_order&title_li=&meta_key=top_menu'); ?>

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

Bookmark and Share

Рубрики: Wordpress.
Теги: Wordpress

Кэширующие плагины для WordPress Hyper Cache + DB Cache Reloaded Fix

Янв 17, 2012
автор admin.
Комментировать

При переезде на новый хостинг одного из моих сайтов, опять возникла необходимость заняться кэшированием, для уменьшения нагрузок на движок WordPress. Раньше я полагал, что некоторой небольшой оптимизации, в сочетании с активированным плагином WP Super Cache должно хватать, однако выяснилось, что всё немного сложнее. Новый хостер со своей стороны помог с настройками и некоторым улучшением скорости загрузки, а я решил опробовать недавно найденный “комбо метод” с применением плагинов Hyper Cache + DB Cache Reloaded Fix + WP Minify.

Правда, WP Minify, хоть и интересная вещь будет рассмотрена наверное позже, базовой оптимизацией скорости загрузки я уже занимался, сейчас же решил заняться вплотную кэшированием. По отзывам в интернете, сочетание плагинов Hyper Cache + DB Cache Reloaded Fix даёт самый заметный эффект и увеличение производительности, несколько превосходя WP Cache и WP Super Cache. Суть такого “комбо-метода” в том, что Hyper Cache сохраняет статические копии страниц, а DB Cache Reloaded Fix перехватывает запросы к базе данных, так что не стоит ожидать конфликтов между ними.

Подробнее →

Bookmark and Share

Рубрики: Wordpress.
Теги: DB Cache Reloaded Fix · Hyper Cache · Wordpress

Оптимизация WordPress. Уменьшение требуемой WP памяти

Янв 10, 2012
автор admin.
Комментировать

Потребности движка WordPress неуклонно возрастают с каждой версией.

Небольшого снижения “прожорливости” можно добиться отключив локализацию админки для обычных пользователей – они всё равно ею не пользуются.

Я не стану подробно описывать механизмы работы требуемых изменений, прости опишу, что следует сделать для уменьшения потребления памяти движком wordpress.
Прежде всего, вам следует скачать облегчённый (не содержащий перевод админской части) файл локализации ru_RU_lite.mo. Подробнее →

Bookmark and Share

Рубрики: Wordpress.
Теги: Wordpress

Оптимизируем WordPress – отключаем сохранение ревизий

Янв 3, 2012
автор admin.
Комментировать

Пожалуй первое, что вам следует обязательно сделать настраивая WordPress сразу по завершении установки – отключить сохранение в базе данных ревизий статей.
Возможность ревизии постов добавлена в движок WordPress относительно недавно. Эта фича позволяет сохранять все изменения, вносимые вами в статью, каждое её редактирование, чтобы обеспечить возможность отката при необходимости к любой более ранней её версии. Это конечно даёт довольно ощутимое удобство, но поскольку WordPress не является CVS системой, он не может сохранять изменения инкриментально, а записывает каждое из них в базу как отдельный пост, особого типа “revision”. В результате каждое ваше сохранение в процессе редактирования увеличивает базу данных на целый пост.
Для того, чтобы отключить сохранение ревизий потребуется отредактировать wp-config.php добавив в него строку:
define(‘WP_POST_REVISIONS’, false); Подробнее →

Bookmark and Share

Рубрики: Wordpress.
Теги: Wordpress

Putty

Дек 26, 2011
автор admin.
Комментировать

Программа-клиент putty.exe поддерживает протоколы удалённого доступа к серверам или сайтам Telnet, SSH и Rlogin. Разработчик программы – Саймон Тэтхем (Simon Tatham). PuTTY распространяется абсолютно бесплатно. Программа портирована на следующие операционные системы: Microsoft Windows, Unix, GNU/Linux.

Рассмотрим возможности использования putty:

putty запоминает параметры ранее создававшихся подключений и даёт возможность их восстановления
putty поддерживает работу с ключами протокола SSH
putty поддерживает алгоритмы AES, DES, 3DES, Blowfish, Arcfour
putty позволяет осуществлять доступ через прокси сервер Подробнее →

Bookmark and Share

Рубрики: Мир софта, Работа сервера.
Теги: PuTTY

Описание утилиты PuTTY

Дек 19, 2011
автор admin.
Комментировать

PuTTY

PuTTY, безусловно, весьма полезная утилита. Этот небольшой свободный программный пакет содержит клиенты протоколов Telnet и SSH реализованные для платформы Win32.

Telnet, SSH и Rlogin – три протокола, предоставляющие три способа решения одной и той же задачи: подключения к компьютеру, работающему под управлением многопользовательской операционной системы с удалённого компьютера через сеть. Такие многопользовательские операционные системы, как Unix и VMS предоставляют пользователю интерфейс командной строки. Система выводит приглашение, а пользователь набирает команды, которые выполняются системой.

Хорошая новость для любителей играть на бирже – группа компаний “Альпари” вводит новые торговые платформы для трейдеров.

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

Подробнее →

Bookmark and Share

Рубрики: Мир софта, Работа сервера.
Теги: PuTTY

Устанавливаем ngnix

Дек 12, 2011
автор admin.
Комментировать

Программа, отдающая посетителям страницы сайта, называется WEB-сервером. WEB-сервер, использующийся в рассматриваемом программном комплексе – Apache, самый распространённый сервер в сети интернет.

Apache позволяет ежесекундно отдавать сотни страниц, для чего запускается нужное количество дочерних процессов, каждый из которых обрабатывает лишь по одной странице в любой момент времени. Все эти процессы, конечно же, потребляют память. При превышении количества требующих обработки запросов над числом дочерних процессов, запускаются новые процессы, но отдав страницу, не выгружаются сразу, а остаются в памяти. Отдав определённое количество страниц, дочерние процессы выгружаются, однако при небольшом трафике это может произойти нескоро.
Подробнее →

Bookmark and Share

Рубрики: Работа сервера.
Теги: ngnix


1 из 2412345678»»»



Подписаться

  • Рубрики

    • GSsoft
    • GSVideo
    • Linux
    • Wordpress
    • Железо
    • Информационная безопасность
    • Мир софта
    • Новости IT
    • Обзор проектов
    • Относительные темы
    • Пишем компилятор
    • Помощь
    • Программирование
    • Работа сервера
  • Облако меток

    Combofix DarwinPorts DB Cache Reloaded Fix Debian Dr Web ESET NOD32 Flink HighLoad++ Hyper Cache java Linux Microsoft Midnight Commander Mophun ngnix php PuTTY SolidWorks Ubuntu VirtualBOX vkmusic Wordpress антивирус музыка в контакте обходилка программисты резервное копирование установка ПО ядро
  • Ссылка

    виды платьев
  • Календарь

    Январь 2012
    Пн Вт Ср Чт Пт Сб Вс
    « Дек    
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
  • Страницы

    • Автор
    • Карта сайта
    • О сайте
    • Онлайн переводчик
    • Чат компьютерщиков
  • Последние сообщения

    • Оптимизация WordPress
    • Кэширующие плагины для WordPress Hyper Cache + DB Cache Reloaded Fix
    • Оптимизация WordPress. Уменьшение требуемой WP памяти
    • Оптимизируем WordPress – отключаем сохранение ревизий
    • Putty
    • Описание утилиты PuTTY
    • Устанавливаем ngnix
    • Увеличиваем memory_limit для WordPress
    • Решение проблемы с большим количеством процессов Sendmail
    • Установка midnight commander на Debian
  • Ссылки

    • Megakomp. О компьютерах и программах
    • Блог программирования
    • Качай
    • Уголок разработчика
  • Мета

    • Регистрация
    • Вход
  • Ссылка

© 2012 Блог компьютерщиков | При поддержке WordPress

Дизайн Ravi Varma, Перевод WordPress темы