Рандомный контент – назначение и реализация для WordPress
Рандомный контент — это некоторая область данных, из которой случайным образом выбирается один элемент для отображения в блоге. Самый простой пример — изменяемый слоган в шапке сайта: 3-4 фразы, которые отображаются произвольным образом. Как это может пригодиться для блоггеров кроме примера выше? — лично я знаю 2 способа применения, успешно использовал их у себя на проекте. Итак, назначение:
1. У каждого манимейкера есть набор партнерок, с которыми он работает — для продажи ссылок, статей, контекстной рекламы и т.п. В этих системах есть реферальные ссылки, с помощью которых можно привлекать новых пользователей и получать за это денежное вознаграждение. Так вот где еще размещать эти самые ссылки как не у себя в блоге. Конечно, это не самое «злачное место», тем не менее, иногда срабатывает. При этом публикация всего списка ссылок может повергнуть посетителей в шок, поэтому рекомендую прибегнуть к рандомному тексту. Это создаст некоторую динамику на сайте, что в свою очередь позволит привлечь внимание читателя и сэкономить немного места. Кстати, случайным образом может выбираться как простой текст, так и баннеры.
2. Второй возможный способ применения случайной выборки — это реклама в блоге. Если желающих разместить ее у вас достаточно много, а вакантные места ограничены, то можно предложить совместную ротацию для нескольких участников. Единственным недостатком рандома — есть невозможность определить точную цифру показов, то есть за определенный промежуток времени первый баннер может быть показан 5 раз, второй — 2, а третий — 4, при этом изначально количество предугадать невозможно. Серьезным рекламодателям это может не подойти, здесь следует использовать специальные плагины, которые ведут статистику по кликам. Другое дело, если это реклама для блоггеров, например, или приз за победу в конкурсе, как это сделал я.
Думаю, можно придумать еще какие-то способы применения, более некоммерческие, по типу изменяемые изображение в шапке сайта для красоты и т.п. Если у вас есть идеи на этот счет — делимся ими в комментариях. А я пока расскажу о реализации рандомного контента для WordPress.
1. Создаем текстовый файл в блокноте с рандомными элементами — каждый из них начинается с новой строки, например:
<b>This is your first quote.</b> <em>This is your second quote.</em> <u>This is your third quote.</u> This is your fourth quote. |
Записываем этот файл на FTP.
2. Далее заходим в меню редактирования шаблона wordpress: Design — Theme Editor и выбираем нужный файл в зависимости от того, куда мы ходим добавить рандомный текст. Как правило, чаще всего это боковая панель блога — Sidebar (sidebar.php).
Добавляем в код следующие строки, которые отвечают за вывод рандомного элемента из списка в файле:
<?php $textfile = "https://tods-blog.com.ua/files/freebanners125.txt"; //путь к файлу if ($quotes = @file("$textfile")) { $quote = rand(0, sizeof($quotes)-1); echo $quotes[$quote]; //вывод рандомного текста }else{ echo ("Нет рандомного контента"); //вывод сообщения, если файл не найден } ?> |
Вообще, в wordpress много стандартных функций, которые можно использовать вместо «непонятных плагинов». Плагины — это потенциальный источник и риск взлома блога или сайта. Поэтому, если есть возможность, желательно использовать существующие функции админки и немного php.
P.S. Постовой: Википедия онлайн бизнеса. Все о финансах в онлайне
Ага это хорошая вещь, у меня на блоге так афоризмы выдаются, а в коллекции их больше 3000 штук, так что повторы очень редко :-)
А можно не полениться, и связать всё с базой данных, где мало того что можно держать эти записи, так можно еще и записывать сколько раз каждая из них была показана. А можно еще выдумать какой-нибудь алгоритм по отбору этих «баннеров», ну например первый заплатил больше чем второй. Первого крутим 70%, второго 30%.. Интереснее имхо )) Хотя насколько мне известно есть готовые плагины для этого…
Кстати, чтобы не портить sidebar.php, советую установить «Executable PHP widget» который позволяет такие штуковины добавлять через админку прямо в сайдбар :)
«Плагины — это потенциальный источник и риск взлома блога или сайта.» — это если только качать плагины с левых сайтов. Качайте с wordpress.org (раздел extend) и всё будет в норме ;)
Константин, по второму пункту позволю с тобой не согласиться — на wordpress.org полно «дырявых» плагинов, разве их кто-то контролирует?
Что касается БД, то это явно не простой способ применения, хотя, как ты правильно сказал, интересный. По поводу сайдбара — предпочитаю все вручную править в коде, использование плагинов для этого считаю избыточным… само название Executable PHP widget навевает нехорошие мысли о каких-то SQL-иньекциях:) А так добавил пару строчек кода куда захотел и все нормально.
О боже )) что за ассоциации )) Executable PHP Widget. Виджет исполняемого php.. Где инъекция? :D
О, я как раз вчера в блоге поднимал подобную тему — по выводу случайных фраз и изображений. Правда, простым редактирование темы — на мой взгляд, так проще. У плагинов, реализующих подобное, обычно есть бооолльшой недостаток — плюс одно обращение к базе, что плохо. А ведь делается в три строчки.
С изображениями веселее — маленький скрипт, что я выложил, позволяет выдавать любую картинку из папки. Правда, я еще не видел достойных реализаций на блогах подобного — если не считать дёрти с их гертрудами.
Константин, то ли ассоциации. Но все равно устанавливать плагин чтобы выполнить ПХП код это какая-то избыточность и кощунство:)
Сергей, я тоже считаю, что проще обойтись редактированием темы, тем более, что никаких супер наворотов в этом не нужно.
Да, но зато ты никогда больше не полезешь в раздел Design -> Theme Editor и не будешь листать эти сотни строк кода.. А если еще и ошибешься то сё пипец ) .. плагин простой, если боишься что он дырявый, то это уже параноя … открой да пролистай — он примитивный. :)
> «Константин, по второму пункту позволю с тобой не согласиться — на wordpress.org полно “дырявых” плагинов, разве их кто-то контролирует?»
А ты думаешь сам WordPress кто-то контроллирует? )) Это и есть вся проблема в OpenSource ;) а в раздел Extend да, на плагины сначала смотрят, потом добавляют.. Ибо было бы глупо разрешить там всё…
Классная тема! Давно думал как это сделать. Вобще, Тод, тебе респект за то что подробно описываешь как можно доработать вп.
Тод, а как с картинками сделать? Я сам не догоню.
drStas, точно также как и для текста — записывается HTML код в строку, то есть
Да ну, у меня на ряде блогов стоит плагин для вывода где баннеров, а где текстовых блогов и я как-то не парюсь. Хотя, когда энное количество блогов на шареде стало грузить сервер, пришлось кое-что урезать, а вот об этом плагине я и не подумал. Надо будет взять на заметку.
Давно искал как это реализовать. Спасибо автору!
У меня текст выводится какими-то кракозябрами. Видно что-то с кодировкой не то. Как это можно исправить?
Alex, посмотри кодировку файла, в котором содержится выводимый контент.
Наконец-то получилось. «Проблема» в том, что я сохранял текстовый документ в стандартной кодировке ANSI, а, оказывается, там можно выбрать и другую :) — выбрал utf-8
Странно, файл существует, но выводит, что якобы его нету.
Артур, странно, должно все работать.
Tod , пробовал даже использоваться текстовой документ, который вы указали в примере, ноль.
@Артур, это может быть из-за того, что на сервере запрещены URL’ы для доступа к файлам. Попробуйте путь «/files/freebanners125.txt»
@Сергей М, благодарю. Именно в этом и было дело. Даже не знаю, как я сам не догадался :)
То что нужно! спасибо.
Вот еще по теме — плагин на Mootools — http://cleverscript.ru/index.php/javascript/mootools/24-random
Зачетно. Полезная фича для сайта.
А если у меня не цитаты, а целые абзацы. То каким образом текст будет делиться на части???
А как выводить 3 рандомных строки, а не 1 из текстового файла, только чтобы они не повторялись?
Спасибо! А как это можно сделать через шорткод, чтобы можно было добавить рандомный текст в посте.
Я понимаю, что это можно сделать через function.php но как не знаю. Можете подсказать?
Юрий, не думаю, что тут можно ограничиться лишь function.php, задача чуть сложнее чем может показаться. Есть рекламные плагины для добавления кода внутрь поста/записи, но такого которой совмещал бы это еще и со случайной выборкой, я не встречал. Нужно искать среди модулей подходящее решение.