Какие я использую плагины для WordPress

Всем привет! Вот решил рассказать какие плагины я использую в WordPress и зачем. Поехали!

Akismet

Классика защиты от спама в комментариях. Проверяет новые комментарии по своей базе и отсеивает всякий мусор. Категорически рекомендуется к установке. Для затравки цитата из моей админки: «Akismet защитил ваш сайт от 3 522 спам-комментариев».

Executable PHP widget

Позволяет добавлять виджеты в тему с исполняемым PHP кодом. Установил специально для YoWindow.

Google Analytics for WordPress

Поддержка службы «Google Analytics». Благодаря ему можно смотреть подробную статистику посещений блога.

Google XML Sitemaps

Генерация файлика sitemap.xml, включая запакованную версию. Этот файл идет в нагрузку к robots.txt и используется поисковиками для более подробной индексации сайта. Рекомендую!

LiveJournal Crossposter

Автоматически создает копию поста в моем блоге в ЖЖ. В последнее время почему-то глючит и создает дубли при кросспостинге. Кандидат на удаление.

Mail From

Задает имя для робота, который шлет отчеты на почту. Согласитесь, что noreply@blog2k.ru намного лучше какого-нибудь ip141.32.31@blog2k.ru. Чисто декоративный плагин.

Pagination Rel Links

Задает значения аттрибута rel — «next|prev» для лучшего индексирования страниц. Подробности можно узнать в этой статье на хабре.

StatPress Reloaded

Статистика посещений моего блога в дополнение к службам «Google Analytics» и «Яндекс.Метрика». Чисто позырить — кто ходит по блогу и зачем.

Use Google Libraries

Загрузка стандартных библиотек (типа jQuery) с хостинга Google. Теоретически из-за этого блог грузится быстрее, потому что загрузка скриптов происходит с разных IP адресов. Честно говоря, не проверял. Поверил на слово.

WordPress Popular Posts

Список популярных постов, который вы видите справа. Можно выводить список популярных постов за сутки, неделю, месяц или за все время наблюдения. В плагине StatPress Reloaded есть похожий функционал, но он как-то совсем криво работает и сделан, видимо, для галочки.

WP-Syntax

Подсветка синтаксиса исходников. Поддержка C/C++/Python/Java/sh и еще куча других. Его работу можно увидеть воочию в разделе «Программирование».

WP LaTeX

Вставка математических формул в блог. Задаете формулу в формате LaTeX, а плагин вставляет картинку заместо нее. Ну очень полезный плагин. Поставил его сразу после Akismet для постов про матрицы и вектора так и остался он тут жить.

WP Super Cache

Кеширует страницы блога, избавляя сервер от лишней работы по разбору PHP скриптов. Реально ускоряет блог.

WP Ya.Share

Добавляет кнопку «Поделиться» от «Яндекса» для множества социальных сетей к каждому посту.

Яндекс.Метрика

Интеграция сервиса «Яндекс.Метрика». Учитывая, что «Яндекс.Метрика» «залипает» во время загрузки графиков — кандидат на удаление.

UPD: написал обновленную версию этого поста, часть вторую. Ознакомится можно по ссылке: «Какие я использую плагины для WordPress — 2».

Наконец-то исправил страницу 404

Ура! Наконец-то добавил нормальную страницу с ошибкой 404. Эта страница отображается пользователю, если он пришел в блог на адрес, которого нет.

Для того, чтобы страница корректно отображалась в IE8 пришлось увеличить ее размер до 512 байт. Я добавил блок данных в конец страницы.

Данный блок можно создать с помощью скрипта на питоне (random() используется для того, чтобы gzip при отдаче страницы не смог ее сильно сжать):

from random import random
print ''.join(chr(int(ord('A') + 26 * random())) for i in xrange(512))
Скрипт для проверки интернета
#!/bin/sh
 
# Какие хосты проверяем (через пробел).
hosts="8.8.8.8 ya.ru www.ru"
# Файл, который будет создаваться, если интернета нет.
offline="/tmp/inetoff"
 
# Функция проверяет с помощью ping доступность хостов. 
# Возвращает 0, если хотя бы один хост доступен.
check_hosts() {
    for host in ${hosts}; do
        # Запускаем ping с 4-мя запросами
        /sbin/ping -c 4 $host > /dev/null 2>&1
        if [ $? -eq 0 ]; then
            return 0;
        fi
    done
    return 1;
}
 
# Процедура, которая пишет сообщение 
# в /var/log/message с тегом INTERNET.
message() {
    /usr/bin/logger -t INTERNET $1
}
 
check_hosts
 
# Хотя бы один хост доступен?
if [ $? -eq 0 ]; then
    # Флаг отсутствия интернета существует?
    if [ -e ${offline} ]; then
        # Значит интернет только что появился.
        message "Network is up"
        # Удаляем флаг отсутствия интернета.
        /bin/rm -f ${offline}
    fi
else
    # Ни один хост не ответил и флага еще нет.
    if [ ! -e ${offline} ]; then
        # Значит интернет только что пропал.
        message "Network is down"
        # Создаем флаг отсутствия интернета.
        /usr/bin/touch ${offline}
    fi
fi

Засовываем вызов скрипта в крон:

# Запускать каждые 5 минут
*/5  *  *  *  *  /path_to_script/lancheck.sh

Теперь в /var/log/message видно, когда интернет появился или пропал.

Почтовый сервер Exim: настройка переадресации для нескольких хостов

Заменяем стандартный роутер system_aliases на этот:

begin routers
    vdom_aliases:
        driver = redirect
        allow_defer
        allow_fail
        domains = dsearch;/usr/local/etc/exim/virtual
        data = ${expand:${lookup{$local_part}lsearch*@{/usr/local/etc/exim/virtual/$domain}}}
        retry_use_local_part
        pipe_transport = address_pipe
        file_transport = address_file

В папке /usr/local/etc/exim/virtual создаем текстовые файлы с названием домена следующего вида:

# Почту для ravenor@domain доставлять пользователю ravenor@domain
ravenor : ravenor
# Почту для inquisitor@domain доставлять пользователю ravenor@domain
inquisitor : ravenor
# Почту для imperator@domain принимать безо всяких вопросов и кидать в /dev/null
imperator : :blackhole:
# Почту для heretic@domain отбрасывать на этапе SMTP-сессии
heretic : :fail:
# Все остальную почту доставлять пользователю heretic@domain
# (она будет отброшена правилом, которое задано для heretic)
* : heretic
Почтовый сервер Exim: отправляем почту через relay провайдера без авторизации

Удаляем стандартный dnslookup:

begin routers
    dnslookup:
        driver = dnslookup
        domains = !+local_domains
        transport = remote_smtp
        ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
        no_more

Добавляем в секцию routers:

begin routers
   example_router:
        driver = manualroute
        domains = !+local_domains
        transport = example_smtp
        route_list = * smtp.example.com

Удаляем стандартный транспорт remote_smtp из секции transports:

begin transports
    remote_smtp:
        driver = smtp

Добавляем новый транспорт в секцию transports:

begin transports
    example_smtp:
        driver = smtp
        hosts = smtp.example.com
Блог Евгения Жирнова