Человек-Хэмингуэй - live cam since 1974

Archive for March, 2013

Wordpress чувствителен к кодировке плагинов. Очень

Tuesday, March 5th, 2013

Сейчас отлавливал баг у одного самописного плагина, чуть мозг не взорвался. Причем баг такой, что заметить его сразу трудно - непосредственно с прямой задачей (кэширование поста в html) плагин справляется отлично. Но в это же время, как заметили авторы, ломается загрузка картинок. То есть картинки грузятся, но после загрузки не появляется окно с полями - его надо вызывать через Media Library. Мелочь, а неприятно бесит.

Короче, все перепробовали, напоследок только заметили, что плагин написан в кодировке UTF с сигнатурой. Быстренько пересохранили в обычном UTF без сигнатуры - и ПРЕСВЯТАЯ ДЖИГУРДА! ВСЕ ЗАРАБОТАЛО!!!!

Пик релейтед

как я люблю вордпресс

Wordpress: как сделать рубрики - рубриками в URL

Tuesday, March 5th, 2013

Пользуясь свободной минуткой, опишу еще одно решение из Wordpress, которое мне не пригодилось. Смотрите, в WP можно сделать так, что URL страницы будет выглядеть так:

site.ru/categoryname/postname/

но названия категорий официально должны иметь префикс. То есть URL самой рубрики-категории будет выглядеть так

site.ru/category/categoryname/

Вместо вот этого category можно вписать другой префикс, но совсем убрать его…. МОЖНО!

Об этом хорошо написано тут - How to remove the category suffix in the category permalinks.

Я его себе уже сохранил, а если та страница сдохнет, то запомните 3 шага.

1. в админке WP сделайте шаблон пермалинков для всех страниц такой
/%category%/%postname%
префикс для категориий оставьте пустым

2. в functions.php текущей темы впишите
function kill_category_base ($string) {
$string = str_replace('category/', '', $string);
return $string;
}
add_filter('category_link', 'kill_category_base');

3. в htaccess найдите

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

И замените его на

# remove the category suffix - by Joan Piedra
# http://joanpiedra.com/wordpress/remove-category-suffix-permalink
RewriteRule ^(feed|comments)/(rss|feed)$ index.php/$1/$2 [L] # filter rss feeds
RewriteRule ^([^/.]+)/(page/([0-9]+)|feed)$ index.php/category/$1/$2 [L] # redirect category pages and feeds

# redirect everything else to wordpress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

Копирайты не удалял, пацан хорошее дело сделал. После этих трех шагов, я проверял, URL рубрик будет выводиться правильно, то есть как
site.ru/categoryname/

без всяких дурацких префиксов

Wordpress: ленты анонсов постов - прямо в других постах

Tuesday, March 5th, 2013

Задача: выводить в обычном посте WordPress список анонсов постов из другой рубрики или тега.

Решение:
1. Качнул плагин Post List

2. Модифицировал код вывода под свои задачи. Плагин простой, на два кило кода максимум с большими пробелами, это может каждый.

По умолчанию плагин выводит списком названия постов. Я сделал так, чтобы выводились картинками.

Используется он так - прямо в нужный пост или page в текстовом редакторе Wordpress вставляется шортлинк

[postlist cat=”cat1,cat2″ tags=”tag1,tag2,tag3″ requesttype=”1″]

Объяснять, я думаю, не нужно :)

update: из беседы в другом месте выношу свое уточнение:

“нет, они будут выводить последние анонсы из рубрики
для микрорубрик - это хорошо
это явно не для сотен игр в одной рубрике”

То есть это именно живая обновляющаяся лента с последними анонсами по заданным рубрикам или тегам. Как насчет пагинации и вывода огромного количества анонсов - пока не проверял, честно. У меня задача была сделать именно для мини-рубрик на 10-20 товаров.
.
.
.
ЗЫ: вот как модифицировал плагин я -> Post List 1.3 c thumbs <-

По умолчанию он работает так же, как и обычный. Но если использовать в шортлинке requesttype="thumb“, то вместо ненумерованного списка плагин выведет кучу картинок (featured images, то есть thumbnails) с заголовками примерно так, как на MySpongeBob.Ru - пример 1. Сайт не мой, просто мне нравится его траффик :)

Ну, там какой CSS добавить для класса .thumb (display:block, заданная ширина и высота) - думаю, разберетесь. Я вообще написал этот пост, чтобы самому себе в будущем сэкономить часика два, которые ушли на решение.

PS: обновил плагинчик, теперь если ничего не находит в данных категориях и тегах, то ничего и не выводит. По дефолту выводил текст, что ничего не найдено.