Статьи из рубрики «wordpress» RSS

Статьи, посвященные WordPress и всему, что с ним связано

Дочерние рубрики:

Ужасы таксономии в WordPress

Внутренняя реализация управления таксономиями в WordPress — это просто кошмар какой-то. Мало того, что код написан в процедурном стиле (использование ООП помогло бы решить некоторые проблемы с производительностью, которые иначе можно решить только глобальными переменными), он к тому же очень плохо масштабируется.

Я взял свежую дефолтную инсталляцию  2.8-bleeding, сгенерировал тестовый контент и пошел искать недоработки и проблемы с производительностью. Одну из них я нашел очень быстро: при попытке удалить категорию, в которой была 1,001 ночь запись.

На неслабом сервере это заняло около 20 секунд и… более 12,000 запросов (да-да, двенадцати тысяч, я количеством ноликов, увы, не ошибся). Далее »

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

Увеличение производительности плагина NextGen Gallery

В случае, если галереи содержат несколько тысяч изображений, в зависимости от мощности сервера и посещаемости сайта могут возникнуть проблемы с производительностью, связанные с неоптимальностью индексов в таблице wp_ngg_pictures. Далее »

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

Simple Tags 1.6.6 и автоматические ссылки меток на русском языке

Полгода назад я рассказывал о том, что не умеет работать с многобайтовыми символами (коими, к слову, являются русские буквы в кодировке UTF-8). За это время вышло восемь или девять новых версий плагина, но проблема с поддержкой UTF-8 всё же осталась.

Так сложилось, что именно сегодня я решил обновить . Патчить код было лень, я надеялся, что у Lecactus’а лежит пропатченная свежая версия. Увы, только 1.6.3. Далее »

Автор: , опубликовано в: Патчи, Плагины WordPress, комментариев: 23
2
Июн
2009

Google Website Optimizer

Google Website Optimizer — , интегрирующий одноимённый сервис Google с . Далее »

Автор: , опубликовано в: Плагины WordPress, комментариев: 8
20
Май
2009

Плагин Redirect от Nick Berlette

Сегодня по долгу работы пришлось столкнуться с плагином Redirect от Nick Berlette. выполняет перенаправление на URL, заданный в Произвольных полях записи или страницы. Сам по себе простой — кода всего 10 строк. Я бы на него даже не обратил внимание, если бы CLI-скрипт не вернул фатальную ошибку. Далее »

Автор: , опубликовано в: Плагины WordPress, комментариев: 4
15
Май
2009

Вывод списка страниц с описанием

Для вывода подстраниц (иными словами, дочерних страниц текущей страницы) авторы тем очень часто используют такой код (пример взят из OneTheme):

[-]
View Code PHP
< ?php
    $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
    if ($children) { ?>
    <ul>
        < ?php echo $children; ?>
    </ul>
< ?php } ?>

У wp_list_pages(), на мой взгляд, есть два серьёзных недостатка:

  1. Хотя для вывода информации нужны всего два поля (ID и post_title), wp_list_pages() выбирает всю информацию, что ведёт к увеличению трафика между и (и, в конечном итоге, сказывается на производительности);
  2. При использовании wp_list_pages() не получается вывести дополнительную информацию о странице (например, её описание, рейтинг и т.п.).

Далее »

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

nginx Compatibility: делаем WordPress дружелюбнее к nginx

Переведя несколько сайтов с Apache на , уже который раз встречаю подводные камни. Один из них — нежелание понимать код редиректа, другая — постоянные попытки использовать PATHINFO-пермалинки вместо «нормальных» (pretty permalinks).

Неудобно каждый раз лезть в код WordPress, чтобы поправить очередную несовместимость, поэтому я написал небольшой . Далее »

Автор: , опубликовано в: nginx, Плагины WordPress, комментариев: 7
14
Апр
2009

WP Super Cache и высокая нагрузка

Проблема: случайным образом перестаёт реагировать на внешние запросы.

Сайт работает на ), web-сервером стоит , php-fpm с 40 дочерними процессами висит в режиме . Довольно-таки стандартная конфигурация.

Иногда (периодичность не ясна) сайт падает. В том плане, что nginx выдаёт ошибку 502 Bad Gateway. При этом в логах отображается примерно такое:

[-]
View Code Text
2009/03/23 00:50:57 [error] 29289#0: *1821923 connect() to unix:/dev/shm/php-fcgi-XXX.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 195.10.218.132, server: example.org, request: "GET /wp-login.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi-XXX.sock:", host: "example.org"

Лечится только перезапуском php-fpm. Далее »

Автор: , опубликовано в: WordPress, комментариев: 12
23
Мар
2009

WordPress, FastCGI и редирект 301: часть 2

Более изящное решение, нежели представленное в первой части (WordPress, FastCGI и редирект 301).

В первой части предлагалось при использовании web-сервера закомментировать проверку на SAPI (if ( php_sapi_name() != 'cgi-fcgi' )). Однако есть лучшее решение. Далее »

Автор: , опубликовано в: nginx, Патчи, комментариев: 3
13
Мар
2009

WordPress, FastCGI и редирект 301

Всё-таки удивительная штука … Сегодня чисто случайно обнаружил, что если работает в режиме (например, связка WordPress +  + PHP), то все редиректы с кодом 301 (Permanent ) превращаются в редиректы с кодом 302 (Temporary ).

Чем это грозит? Если Вы занимаетесь спамомSEO, то Вы, вероятно, знаете, что переход с кодом 302 не передаёт PageRank. Иными словами, если Вы изменили структуру пермалинков или по той или иной причине в Google "раскручена" страница с несколько другой постоянной ссылкой (например, http://example.com/?p=202), то «канонический редирект» (см. wp-includes/canonical.php) не передаст PageRank целевой странице. Далее »

Автор: , опубликовано в: nginx, SEO, WordPress, комментариев: 14
5
Мар
2009