Плавающий тулбар WordPress жрет до 3 мегабайт

April 1st, 2013

Кстааати!!!!
Сейчас проверял свой перепаянный движок на другом сайте, увидел, что суперкэшированная версия жрет от 600 килобайт до 3 мегабайт памяти.

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

Кто использует любой вид кэша и озабочен дополнительной экономией ресурсов - убирайте плавающий тулбар админа из тем нафиг.

.

.

.

PS: кстати, вывод кэшированной страницы на шаред-хостинге и на тарифе “сервер для одного” у Мастерхоста практически одинаков по времени - тысячные или десятитысячные доли секунды. Как статику выплевывает :)

Юзеры с одним мылом

March 26th, 2013

Полезный плагинчик - http://wordpress.org/extend/plugins/allow-multiple-accounts/

Вкратце: с третьей версии WordPress не позволяет создавать разных юзеров с одним мылом. А если нужны заранее заготовленные учётки, чтобы только раздал пароли и всё? Тогда надо установить плагинчик Allow Multiple Accounts, по ссылке выше.

Автоматическая вставка файла в WordPress по его имени

March 25th, 2013

Бывают такие ситуации, когда файл в WordPress проще залить через FTP, чем внутренний менеджер. Это особенно касается больших файлов - в последних версиях WP они просто п! Что характерно - в древних ВордПресс огромные файлы заливаются менее проблематично. Ну да ладно, вернемся к проблеме.

Итак, залили через FTP в директорию загрузки Вордпресс, а теперь надо вставить ссылку на этот файл в пост. Что надо сделать? Правильно, вручную составить и вбить полный URL.

Для автоматизации этой рутины я написал сегодня короткий плагинчик

http://kvisaz.ru/files/2013/03/kvisaz-auto-file.zip

Вот, кстати, пример - сам себя иллюстрирует. Я залил архив через FTP в последнюю, поставил короткий шортлинк с именем файла и путь сгенерировался сам - в виде нормальной ссылки. Как это работает:

1. В момент записи поста плагин фильтрует его на предмет шортлинка auto_file… /auto_file. Шортлинки - они как теги, напомню, только записываются квадратными скобками. К примеру, вот так [shortlink]содержимое[/shortlink]. В качестве содержимого было kvisaz-auto-file.zip.

2. Если шортлинк auto_file найден, плагин берет его содержимое, как имя файла и генерирует полный путь, полагая, что вы залили этот файл в последнюю текущую директорию загрузки ВордПресс. Папка месяца и года - текущие.

3. Бонусная фича! Если вместо имени файла в содержимое шортлинка вставить !auto, то в качестве имени файла будет использовано имя поста. Это актуально для автоматически созданных драфтов, к примеру, с помощью Featured Image Posts.

Вообще, это укороченная версия плагинчика, который я создал для личных целей. Какие функции туда можно ещё вставить:
- проверка существования файла с помощью file_exists (у меня в личной версии эта проверка есть, только другой функцией);

- автоматическая генерация кода в зависимости от расширения файла (у меня пока тоже заточена лишь под одно расширение) - для картинок, флэш-игр и просто архивов, к примеру.

- автоматическая вставка размеров изображения для файлов картинок (у меня она тоже есть, это делается банально с помощью getimagesize, который обрабатывает даже swf).

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

Но, как я уже сказал, этот плагин может стать незаменимым и просто для “ленивой” вставки в пост ссылок на очень большие файлы, которые заливаются по FTP. Только помните, что заливать надо в директорию, соответствующую текущему году и месяцу, если только в WordPress эта опция (организация загрузок по месяцам и годам) не выключена. Если она выключена, то можете заливать просто в uploads или что там у вас вместо директории загрузки.

Превьюхи к каждому посту в WordPress

March 18th, 2013

Для превьюх (thumbnails) в WordPress последних версий используется удобный механизм Featured Image - просто указываешь картинку из библиотеки и она прикрепляется к посту. Эта картинку в шаблоне можно выводить так:

>> внутри цикла

if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
the_content();

Но the_post_thumbnail() и родственный ему get_the_post_thumbnail() генерируют сразу готовый html-блок с картинкой, в котором вставлен класс, alt и title. При этом alt и title берутся из медиа-библиотеки, где, как считают авторы WordPress, у каждой картинки они просто обязаны быть прописаны.

Но что, если в медиа-библиотеке WordPress таких alt и title нет? Или они содержат абракадабру (при массовой загрузке картинок в alt и title вставляется имя файла)? Или нужно сделать подходящий alt и title для этого, конкретного поста?

Для таких случаях я вчера нашел такой рецептик:


$thumb_id = get_post_thumbnail_id($post->ID);
$url = wp_get_attachment_url($thumb_id );

$html = '[img src='.$url.' class="Class1" title="Text_1" alt="Text_2" /]'

// квадратные скобки для img на самом деле обозначают угловые

Где первая строка берет ID картинки, вторая строка берет через ID прямую ссылку на картинку-превьюху к посту, а в третьей ты сам прописываешь и класс, и титл, и альт, и любые другие атрибуты, которые нужны.

Я, кстати, сделал это не для темы, а для плагина PostList, который выводит анонсы других постов в любом указанном посте с помощью простого кода, который вставляется прямо в встроенном текстовом редакторе WordPress.

Разное оформление для разных категорий в WordPress

March 14th, 2013

Сегодня узнал, как легко и быстро сделать свои шаблоны для разных категорий в WordPress. Можно делать тематическое оформление для каждой рубрики, а ещё - и для некоторых это может оказаться самым важным - вписывать большой уникальный текст с качественным описанием каждой рубрики. Хоть на сто килобайт :)

В общем, всё просто. Когда WordPress выводит категорию(рубрику), он смотрит по очереди, есть ли у него в папке темы такие файлы:

  1. category-slug.php (Note: available with Version 2.9)
  2. category-ID.php
  3. category.php
  4. archive.php
  5. index.php

Если нет первой, он переходит к следующей, и так пока не упрется в index.php, который быть в папке темы просто обязан (иначе WP просто не активирует эту тему). Другими словами, если вам нужно уникальное оформление для рубрики “Лара Крофт”, вам нужно в папку тему положить файлик category-lara-kroft.php. Или посмотреть, какой ID у рубрики Лары Крофт - к примеру, 70 - и назвать файлик category-70.php.

В общем, понятно? Название уникального шаблона для категории должно начинаться с “category-” и заканчиваться её слагом или ID. И ВП автоматически включит оформление из этого файла.

Такие файлики очень легко генерить из базовых - того же index.php, если тема делается своими силами с нуля, или из arсhive.php, из category.php, если тема взята уже готовая (там эти файлы, как правило, уже имеются). Вставляем уникальный бэкграунд, вписываем пару картинок, влепляем длинное качественное описание рубрики “Лара Крофт - это выдающийся Томб Рейдер нашего времени, если не считать людей, голосующих за вынос Ленина из Мавзолея” и убогая рубрика WordPress из убогой ленты анонсов превращается в качественный раздел нормального сайта.

#hello#