Потенциальная дырка в wp_rel_nofollow()

Копаясь в коде , обнаружил одну особенность функции wp_rel_nofollow() (функция используется для добавления rel="nofollow" к ссылкам): регулярное выражение, отвечающее за поиск ссылок, слишком упрощено. Далее »

Автор: , опубликовано в: WordPress, комментариев: 2
1
Янв
2010

WP File Cache 1.1

Тихо и незаметно вышел  1.1. В плагине исправлена серьёзная плавающая в методе FileCache::get(). Всем тем, кто использует данный плагин, очень рекомендую обновиться.

Скачать плагин WP File Cache 1.1 Далее »

Автор: , опубликовано в: Плагины WordPress, комментариев: 70
19
Дек
2009

WP Super Cache vs MaxSite Cache: часть 2

Вторая часть статьи WP Super Cache vs MaxSite Cache.

В предыдущей части я сравнивал поведение и на тестовом VDS (512 MiB RAM, 10 GB HD, Intel Xeon X3320 (1 ядро), 2.5 GHz), на котором ни операционная система, ни программное обеспечение не были специально настроены — бралась конфигурация «из коробки» и тестировалась. Одним словом, «VDS абсолютного чайника».

В этой части изменилась только конфигурация программного обеспечения: сервер настраивался на максимальную .

В частности:

  • отказ от в пользу и от mod_php5 в пользу php-fcgi (количество -процессов выбиралось таким образом, чтобы избежать использования файла подкачки);
  • смена ядра с linux-image-server на linux-image-virtual;
  • настройка MySQL: отказ от InnoDB (экономит примерно 100 МБ памяти), увеличение буфера ключей и т.п.;
  • установка и настройка xCache (я исходил из того, что далеко не все чувствуют себя комфортно при сборке программ из исходников, поэтому брал только готовое ПО);
  • настройка iptables для фильтрации пакетов.

Далее »

Автор: , опубликовано в: WordPress, комментариев: 2
13
Дек
2009

Опять сломали!!!

В очередной раз разработчики ломают совместимость… Хотя справедливости ради стоит отметить, что затронуты будут далеко не все плагины, а только те, которые полагаются на то, что функция wp_nonce_field() создаёт в форме поле с именем _wp_http_referer. Далее »

Автор: , опубликовано в: WordPress, комментариев: 1
9
Дек
2009

Безопасный логин в WordPress с использованием nginx

, начиная с версии 2.6, имеет улучшенную поддержку работы с .

У администратора есть две возможности:

  1. Использование HTTPS для работы в панели управления (wp-admin).
  2. Использование HTTPS только для входа в систему.

Первое достигается путём добавления строки

[-]
View Code PHP
define('FORCE_SSL_ADMIN', true);

в wp-config.php, второе — путём добавления строки

[-]
View Code PHP
define('FORCE_SSL_LOGIN', true);

Добавляем одну из этих двух строк в wp-config.php и проблема решена? Но в действительности всё не так, как на самом деле :-)
Далее »

Автор: , опубликовано в: nginx, WordPress, Безопасность, комментариев: 5
5
Дек
2009

Оптимизация All in One SEO Pack

Как оказалось,  — один из основных источников запросов к базе данных на блогах с большим количеством страниц (page). Всё дело в том, что в есть одна неотключаемая особенность: он пытается переписать все ссылки, которые выводятся через функцию wp_list_pages() (обычно эта функция вызывается из заголовка или подвала темы и используется для создания меню).

Вообще переписывание ссылок — это отдельная история, заслуживающая отдельной статьи. Если вкратце, то плагин берёт метаданные из поста и заменяет ими title и текст ссылки.

All in One SEO Pack: Edit Page

Что характерно, если поле Title Attribute пустое, то All in One SEO Pack вообще затрёт title ссылки.

Проблема с запросами возникает из-за того, что All in One SEO Pack читает метаданные для каждой страницы, присутствующей в результате, который вернула функция wp_list_pages(). Если в меню тридцать страниц, то в результате получим тридцать лишних запросов к базе данных. Умножаем на количество показов страниц (страниц в широком смысле, а не в терминах ) и получаем большую цифру. Далее »

Автор: , опубликовано в: Патчи, комментариев: 10
25
Ноя
2009

Еще одна оптимизация NextGen Gallery

имеет одну неприятную особенность: при каждом обращении к блогу выполняется обновление (UPDATE в терминах MySQL) таблицы wp_options. Хотя для «средних» блогов это не критично, для хорошо посещаемых ресурсов это плохо по ряду причин:

  1. Обновление таблицы wp_options сбрасывает запросов MySQL к таблице wp_options, что приводит к необходимости реального выполнения запросов на выборку данных (с учётом огромного количества записей — благодаря всяким разным плагинам — это лишний между PHP и MySQL).
  2. Выполнение операции обновления таблицы при использовании MyISAM приводит к блокировке таблицы; при высокой посещаемости это приводит к вынужденному ожиданию освобождения таблицы и негативно сказывается на нагрузке и производительности.
  3. При использовании плагинов объектного кэширования каждый вызов update_option() приводит к необходимости обновления и записи кэша; обновление файлового объектного кэша приводит к лишним обращениям к диску (которых на виртуальных серверах лучше избегать).
  4. В конце концов, это лишний запрос, который не является необходимым.

Далее »

Автор: , опубликовано в: Патчи, комментариев: 18
23
Ноя
2009

WP Super Cache vs MaxSite Cache: часть 1

После того, как MAX’у не понравился тест с участием MaxSite Cache, я решил несколько видоизменить методику тестирования.

На этот раз я тестировал только два кэша: и Lite. Далее »

Автор: , опубликовано в: WordPress, комментариев: 9
14
Ноя
2009

Перенаправление RSS в WordPress на FeedBurner для nginx

Хотя для перенаправления фидов на существует несколько плагинов, справиться с этой задачей можно и силами web-сервера. Рассмотрим на примере . Далее »

Автор: , опубликовано в: nginx, WordPress, комментариев: 5
13
Ноя
2009

nginx и gzip_static: еще один способ снизить нагрузку на сервер

Чем меньше размер страниц сайта, тем меньше расход трафика, загрузка канал и выше скорость загрузки страниц. Один из самых распространённых способов уменьшения страниц — перед отправкой пользователю.

В для этих целей используется mod_deflate, в  — ngx_http_gzip_module.html. В других web-серверах используются похожие решения.

Что mod_deflate, что ngx_http_gzip_module используют сжатие «на лету» — файл сжимается перед отдачей пользователю. Но сжатие — операция, нагружающая процессор, и чем выше степень сжатия, тем больше . Это не было бы проблемой, если бы один и тот же файл не приходилось сжимать каждый раз заново. Далее »

Автор: , опубликовано в: nginx, Администрирование, комментариев: 8
8
Ноя
2009