Точка с Запятой;

iPod Shuffle — памятник
случайной жизни.

iPod Shuffle

Случайные события кажутся нам естественными. Хотя, несколько лет назад ученые проводили эксперименты, подтвердившие теорию о том, что случайностей не бывает и все наблюдатели активно влияют на любые системы. Даже на квантовые генераторы случайных чисел! Вот и думай после этого об актуальности яблочного слогана сверху…

Но сегодня разговор не о квантовой физике, а о плагине для Wordpress под названием Number of Random Previews. Плагин позволяет делать две вещи:

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

Скачать плагин можно прямо сейчас.

Что к чему?

Установка плагина очень проста и доходчиво описана в прилагаемом текстовом файле.

  1. Скопируй плагин в папку plugins.
  2. Вставь следующий код в файл single.php в конце блока entry:
    1
    2
    3
    4
    5
    6
    
    <?php
    	if(function_exists('getRandomImages')){
    		getRandomLinks($post->ID);  // выведет блок из двух ссылок на посты той же категории, что текущий
    		getRandomImages($post->ID);  // выведет блок из четырех картинок со ссылками на случайные посты, отличные от текущего
    	}
    ?>
  3. Скопируй в свой CSS-файл стили для блока с картинками из текстового файла.
  4. Активизируй плагин в админке вордпресса.

Настройки getRandomLinks

Функцию getRandomLinks можно вызвать с несколькими параметрами, например:

1
getRandomLinks($post->ID,'Посты в тему',3,false);

В этом примере будет возвращена (не выведена!) строка, содержащая код блока с тремя ссылками и заголовком «Посты в тему».

На всякий случай привожу определение этой функции с пояснением всех полей:

1
2
3
4
5
6
7
8
function getRandomLinks($postID,$header='По теме',$num=2,$doecho=true) {
	/*
		Функция возвращает список ссылок на посты из категории текущего поста + заголовок блока.
		$postid — идентификатор поста, в котором выводится блок.
		$header —фраза в заголовке блока. По умолчанию = 'По теме'. Задай равным '', чтобы заголовок вообще не прилеплялся.
		$num — количество выводимых случайных постов. По умолчанию = 2.
		$doecho — если true, то функция сразу выводит блок на экран, иначе просто возвращает код блока как строку. По умолчанию = true.
	*/

Настройки getRandomImages

Функция getRandomImages может возвращать информацию не только о случайных постах, но и о постах из родственных категорий. Например:

1
getRandomImages($post->ID,true,'my_meta_key','Случайные картинки',5,false);

В этом примере будет возвращена строка, содержащая код блока с пятью картинками, хранящимися в дополнительных полях с именем my_meta_key, а также заголовок «Случайные картинки».
При этом, картинки будут выбираться только для тех постов, которые находятся в рубриках текущего поста.

На всякий случай привожу определение этой функции с пояснением всех полей:

1
2
3
4
5
6
7
8
9
10
function getRandomImages($postid,$related=false,$metakey='t',$header='',$num=4,$doecho=true){
	/*
		Функция возвращает список ссылок-картинок на несколько случайных постов
		$postid — идентификатор поста, в котором выводится блок.
		$metakey — название дополнительного поля, в котором хранятся картинки. По умолчанию = t.
		$header —фраза в заголовке блока. По умолчанию = ''. Задай отличным от '', чтобы заголовок появился.
		$num — количество выводимых случайных постов. По умолчанию = 4.
		$related — если true, то функция возвращает картинки с постами из тех же рубрик, что текущий. По умолчанию = false.
		$doecho — если true, то функция сразу выводит блок на экран, иначе просто возвращает код блока как строку. По умолчанию = true.
	*/

Важный момент!

Еще одно полезное применение произвольных полей есть у MaxSite.

Работа функции getRandomImages основана на том, что у каждого поста есть произвольное поле, в котором лежит ссылка на превьюшку. Поэтому перед использованием этой функции надо сделать превьюшки для всех постов, залить на сервер и заполнить произвольное поле для каждого поста (по умолчанию функция считывает из поля под названием t).

По умолчанию размер мини-картинок должен быть 100 на 100 пикселей. Если хочешь использовать превьюшки другого размера — изменяй CSS (чтобы блок с картинками выглядел красиво).

Напоследок

Еще раз привожу ссылку на плагин.

Кроме того, я хочу посоветовать тебе плагин для отправки постов на subscribe.ru, который умеет постить еще и в блогспот, если это необходимо. Меня этот плагин очень выручил, потому что интерфейс subscribe.ru ужасен и непонятен, трансляция по RSS платная, а при всех этих минусах уж очень хочется расширить аудиторию.

PS.

Миша Квакин ожил, а на блогпортрет уже 8 желающих. Заявки принимаются и по сей день.

PPS.

Плагин работает только с версиями Wordpress до 2.6 и более не поддерживается. Для тех, кто хочет сделать нечто подобное, советую копать в сторону
$images = &get_children(’post_type=attachment&post_mime_type=image&post_parent=’.$post->ID);
и не морочить себе голову с вырезанием и загрузкой отдельных превьюшек.

Похожие записи

Два случайных поста Крутые PHP-гангстеры, где вы? Турбоускоритель для MySQL «IE7 Standalone» или «Тестируем верстку на Windows Vista»

Запись опубликована 28.01.08
в рубриках: Программируем.

Предыдущая запись

Блогпортрет: Стас Давыдов

Следующая запись:

Блогпортрет: Дмитрий Лукомский

Комментарии

  1. А где искать single.php и css файл со стилями? я чувствую себя чайником )

  2. single.php и styles.css лежат в папке /wp-content/themes/твоя-активная-тема/

  3. Про плагин для subscribe.ru узнал только что… буду думать над рассылкой…

  4. Спасибо! !! !! ! ! ))) сейчас поставлю ) и буду танцевать танец просвещенной курицы ))))

  5. Feelov — ага, подумай, там просто немеряно народу читает рассылки.

    Я еще год назад, когда писал в этот блог по посту в месяц, занимался ручным переносом постов в subscribe — за три поста накопилось 30 читателей. Довольно хороший выхлоп 8)

  6. Poikom — неужели уже наклепал превьюшек для каждого поста?.. Быстро!

  7. Огромное спасибо, только хотел спросить как картинки выводятся… А за плагин для subscribe - так вообще низкий поклон.

  8. P.S. Насолько оправдано text-align: justify в комментариях? Читал, что это снижает читабельность.

  9. Я просто забыл отформатировать содержимое комментариев.
    Спасибо за напоминание, займусь этим на досуге 8)

  10. Нет слов. Плагин с картинками из постов - шикарная находка. Как только найду время, сразу же настрою у себя в блоге.
    Спасибо.

  11. Brim:

    Спасибо. Как раз на днях думал, что мне нужен такой плагин. :)

  12. На какую верию Wordpress расчитан плагин? У меня текст “Посты в тему” отображался, а собственно сами посты - нет :)
    Кстати у меня шаблон Simpla, и файла single.php там не нашел, потому вставлял код вызова функции туда где комментарии выводятся (массив $post там доступен, функция вызывалась корректно). У меня установлен: WP Версии 2.3.2

  13. Тут может быть две причины:
    1) у вас нет постов в этой же категории.
    2) магия. У меня на версии 2.1.1 работает. Да и никаких сложных функций там нет в плагине. Если не трудно - скиньте код, пожалуйста 8)

  14. Посты в категории есть, проверял. Скорее всего магия или несовместимость с версией 2.3.2 ) или из-за того что я не в single.php вставляю (потому что в каталоге темы его просто нет), а в comments.php (хотя массив $post там тоже доступен).

  15. [...] — сделано! Я написал простой плагин для Wordpress, который, правда, непросто встраивается в блоги с [...]

  16. Нашел похожий плагин, только более функциональный имхо.
    http://www.dynamick.it/related-post-with-thumbnail-942.html

  17. Cooluck: ага, прикольно, лазает по найденным родственным постам и из первой попавшейся картинки поста делает превьюху.

    Я тоже хотел делать так, но у меня почему-то после ПХП-шного сохранения в картинку в качестве 0.7 картинки уж больно страшненькие получились… В этом плагине GD юзают для таких целей, надо будет изучить, вроде симпатично получается 8) Хотя, сервер жалко…

  18. Да, жаль что он пока не работает с последними версиями wp.
    А сервер нечего жалеть - пусть работает ;)

  19. А можно такую же фичу, но чтобы в сайдбаре стояла?

  20. А чем сайдбар отличается от любого другого места?

  21. Илья: ничто не мешает стилизовать фичу и отформатировать рисунки под нужный сайдбар 8)

  22. Если честно, то установка этого плагина для меня сложна.
    Я даже не понял когда именно надо кидать картинки и где указывать к ним пути.

    А ты говоришь - “стилизовать фичу” ;)

    А садбар нужен, я давно туда хочу ;)

  23. 8)))))))) Я уже писал, что это не для слабонервных. И особенно не для тех, у кого уже тонна записей в блоге )

  24. Классно! Давно искал подобный плагин - терь точно знаю, что и как ;)

  25. Очень клево! Спасибо!
    Давно искал я такую штуку для одного своего крупного проекта.

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

    Удачи вам ребята во всем начинаниях

  26. Magic People: как сделаны примечания можно посмотреть через Firebug. Это h4, с назначенным float:left и отрицательным margin.

  27. Спасибо за подробное и информативное описание плагина. Все хотел поставить что-то подобное и давно искал.

  28. хорошая информация доступная, удобная, легко читается и воспринимается. Читал с удовольствием. Спасибо, очень пригодилось.

  29. Спасибо за плагинчик, давно искала такой. Как раз поменяла дизайн!

  30. Юр, в новых версиях WP нету post2cat. Нашёл тут решение http://wordpress.org/support/topic/137793#post-628701

    Обновишь плагин?

  31. Я бы обновил, еще бы заботать, как определить версию WP, которая стоит у клиента…

  32. http://wordpress.org/extend/plugins/replace-wp-version/
    Глянь решение в этом плагине ;)

  33. Но блин этот плагин замедляет загрузку страницы. Тем более в графике

  34. Юр, ну что?

  35. Ром, в течение ближайшего месяца у меня точно не будет времени заняться этим.

  36. Habrenko:

    Отличная статья !
    Так держать!

  37. Взгляните на это с другой стороны! Возможно, так будет правильнее

  38. А есть скриншот? Ну, для правдивости

  39. Юр, мне помогли с плагином - теперь он работает в wp2.5+
    Скинуть тебе код?

  40. Cooluck выложи пожалуйста код здесь.

    Автору спасибо!

  41. спасибо за плагин давно искал, надеюсь будут обновления?

  42. Столкнулся с проблемой вывода произвольных полей в аттачментах… Наткнулся на этот плагин, мою проблему он не решил, но вещь интересная

  43. Да у меня тоже с выводом проблема((( и этот плаг не помог :)
    Хотя вещь стоящая!

Прокомментируйте