Статьи из рубрики «wordpress»
Статьи, посвященные WordPress и всему, что с ним связано
- Патчи (32)
- Плагины WordPress (32)
- Советы (4)
Ужасы таксономии в WordPress
Внутренняя реализация управления таксономиями в WordPress — это просто кошмар какой-то. Мало того, что код написан в процедурном стиле (использование ООП помогло бы решить некоторые проблемы с производительностью, которые иначе можно решить только глобальными переменными), он к тому же очень плохо масштабируется.
Я взял свежую дефолтную инсталляцию WordPress 2.8-bleeding, сгенерировал тестовый контент и пошел искать недоработки и проблемы с производительностью. Одну из них я нашел очень быстро: при попытке удалить категорию, в которой была 1,001 ночь запись.
На неслабом сервере это заняло около 20 секунд и… более 12,000 запросов (да-да, двенадцати тысяч, я количеством ноликов, увы, не ошибся). Далее »
Автор: Vladimir, опубликовано в: WordPress, комментариев: 16Июн
2009
Увеличение производительности плагина NextGen Gallery
В случае, если галереи содержат несколько тысяч изображений, в зависимости от мощности сервера и посещаемости сайта могут возникнуть проблемы с производительностью, связанные с неоптимальностью индексов в таблице wp_ngg_pictures. Далее »
Июн
2009
Simple Tags 1.6.6 и автоматические ссылки меток на русском языке
Полгода назад я рассказывал о том, что Simple Tags не умеет работать с многобайтовыми символами (коими, к слову, являются русские буквы в кодировке UTF-8). За это время вышло восемь или девять новых версий плагина, но проблема с поддержкой UTF-8 всё же осталась.
Так сложилось, что именно сегодня я решил обновить плагин. Патчить код было лень, я надеялся, что у Lecactus’а лежит пропатченная свежая версия. Увы, только 1.6.3. Далее »
Автор: Vladimir, опубликовано в: Патчи, Плагины WordPress, комментариев: 23Июн
2009
Google Website Optimizer
Google Website Optimizer — плагин, интегрирующий одноимённый сервис Google с WordPress. Далее »
Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 8Май
2009
Плагин Redirect от Nick Berlette
Сегодня по долгу работы пришлось столкнуться с плагином Redirect от Nick Berlette. Плагин выполняет перенаправление на URL, заданный в Произвольных полях записи или страницы. Сам по себе плагин простой — кода всего 10 строк. Я бы на него даже не обратил внимание, если бы CLI-скрипт не вернул фатальную ошибку. Далее »
Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 4Май
2009
Вывод списка страниц с описанием
Для вывода подстраниц (иными словами, дочерних страниц текущей страницы) авторы тем очень часто используют такой код (пример взят из OneTheme):
$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
if ($children) { ?>
<ul>
< ?php echo $children; ?>
</ul>
< ?php } ?>
У wp_list_pages(), на мой взгляд, есть два серьёзных недостатка:
- Хотя для вывода информации нужны всего два поля (
IDиpost_title),wp_list_pages()выбирает всю информацию, что ведёт к увеличению трафика между PHP и MySQL (и, в конечном итоге, сказывается на производительности); - При использовании
wp_list_pages()не получается вывести дополнительную информацию о странице (например, её описание, рейтинг и т.п.).
Апр
2009
nginx Compatibility: делаем WordPress дружелюбнее к nginx
Переведя несколько сайтов с Apache на nginx, уже который раз встречаю подводные камни. Один из них — нежелание WordPress понимать код редиректа, другая — постоянные попытки использовать PATHINFO-пермалинки вместо «нормальных» (pretty permalinks).
Неудобно каждый раз лезть в код WordPress, чтобы поправить очередную несовместимость, поэтому я написал небольшой плагин. Далее »
Автор: Vladimir, опубликовано в: nginx, Плагины WordPress, комментариев: 7Апр
2009
WP Super Cache и высокая нагрузка
Проблема: PHP случайным образом перестаёт реагировать на внешние запросы.
Сайт работает на WordPress (с WP Super Cache), web-сервером стоит nginx, php-fpm с 40 дочерними процессами висит в режиме FastCGI. Довольно-таки стандартная конфигурация.
Иногда (периодичность не ясна) сайт падает. В том плане, что nginx выдаёт ошибку 502 Bad Gateway. При этом в логах отображается примерно такое:
Лечится только перезапуском php-fpm. Далее »
Мар
2009
WordPress, FastCGI и редирект 301: часть 2
Более изящное решение, нежели представленное в первой части (WordPress, FastCGI и редирект 301).
В первой части предлагалось при использовании web-сервера nginx закомментировать проверку на SAPI PHP (if ( php_sapi_name() != 'cgi-fcgi' )). Однако есть лучшее решение. Далее »
Мар
2009
WordPress, FastCGI и редирект 301
Всё-таки удивительная штука WordPress… Сегодня чисто случайно обнаружил, что если PHP работает в режиме FastCGI (например, связка WordPress + nginx + PHP), то все редиректы с кодом 301 (Permanent Redirect) превращаются в редиректы с кодом 302 (Temporary Redirect).
Чем это грозит? Если Вы занимаетесь спамомSEO, то Вы, вероятно, знаете, что переход с кодом 302 не передаёт PageRank. Иными словами, если Вы изменили структуру пермалинков или по той или иной причине в Google "раскручена" страница с несколько другой постоянной ссылкой (например, http://example.com/?p=202), то «канонический редирект» (см. wp-includes/canonical.php) не передаст PageRank целевой странице. Далее »
Мар
2009
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

