UPD от 25-07-2017: я не поддерживаю данный плагин. Рекомндую: http://ifish2.ru/quotes-collection-dlya-vyvoda-sluchai-nyh-tsitat-zapisei/
Буквально за час набросал для знакомого плагин, выводящий случайную фразу. Получилось просто до безобразия... решил поделиться.
Итак, если вы у себя на сайте хотите сделать вывод случайной фразы, то:
I) Оригинальная версия
- Скачайте этот архив (без виджета) или этот (с виджетом) с плагином
- Распакуйте архив во временную папку. Архив содержит 2 файла: phrase.php (сам плагин) и phrase.txt (файл с фразами).
- В папке, где установлен Wordpress, в подпапке /wp-content/plugins создаете папку с произвольным названием, например 'wp-alib-phrase'
- В только что созданную папку переписываете файл phrase.php из временной папки
- В корень сайта переписываете файл phrase.txt из архив
- Наполняте файл phrase.txt нужными фразами, ненужные удаляете
- Активируете плагин Alib.Spb Random Phrase через панель управлени
- В то место на конкретной страничке, куда надо вывести фразу, пишете {alib_random_phrase} - эта переменная будет заменена на случайную фразу из файла.
Настройка и замечания.
- Если требуется, чтобы этот файл phrase.txt лежал в другом месте, то открываете файл phrase.php любым текстовым редактором и изменяете переменную $alib_random_phrase_fname. Имете в виду, что путь пишется абсолютный, то есть запись $_SERVER['DOCUMENT_ROOT'].'/phrase.txt' говорит о том, что файл надо искать в корне, а $_SERVER['DOCUMENT_ROOT'].'/wp-content/plugins/phrase/phrase.txt' - в папке /wp-content/plugins/phrase
- Файл phrase.txt должен быть закодирован в UTF-8 без BOM. Если этого не сделать, то на выводе будут одни "квадраты".
- Пустые строки в файле phrase.txt при обработке игнорируются.
- Плагин намеренно сделан простым - для того, чтобы вывод можно было "обернуть" в html теги, вписать в любое место и т.д. Никаких админок, виджетов и проч. не планируется - времени нет и смысла не вижу :)
UPD (5.11.2010): Можно использовать альтернативный способ вызова плагина: прямой вызов функции. В этом случае там, где надо вывести случайную фразу, пишем:
<?php print alib_random_phrase_back('{alib_random_phrase}'); ?>Основной способ рекомендуется использовать в постах, и вообще в зоне видимости the_content - см. Wordpress Codex. Второй способ позволяет вывести случайную фразу вообще где угодно, хоть в хидере. Но! Он представляет собой достаточно устойчивый "костыль", так как основывается на том факте, что WP сначала загружает все плагины, а потом манипулирует шаблоном. Стоит разработчикам WP поменять этот механизм - и альтернативный способ работать перестанет.
UPD (29.04.2011): Сделал виджет. Если будете использовать версию с виджетом, то старую версию (без виджета) надо предварительно удалить.
Удачного использования!
II) Версия плагина от Владимира Кокарева.
Отличается от оригинальной тем, что в оригинальной версии фраза выводится один раз на страницу, и изменяется при перезагрузке (то есть каждый раз при переходе по страницам выводится новая фраза). В версии плагина от Владимира фраза выводится один раз на сайт в сутки и есть ограничение на количество фраз - не более 365. В остальном - все то же самое (установка). Ссылка для загрузки.
Две версии плагина (моя и Владимира) будут конфликтовать - поэтому выбирайте ту, что вам больше подходит.
Комментариев: 49 RSS
1 Marine 29-09-2010 08:33
Привет. А у вас нет случайно плагина - чтобы нажал на кнопку и получил случайную фразу? Вроде "фраза дня для вас".
2 Alexander Bashkirov 29-09-2010 09:04
Элементарно :)
Делаете страничку, на нее вешаете вывод случайной фразы, на все остальные странички вешаете ссылку "Фраза для вас" - и вуаля:) "усе готово"...
3 Marine 29-09-2010 09:09
так. попробую сейчас
4 Marine 29-09-2010 09:10
Файл phrase.txt должен быть закодирован в UTF-8 без BOM - а это что значит? просто в блокноте сохранить не покатит?
5 Alexander Bashkirov 29-09-2010 09:33
Скачайте Notepad++ - http://notepad-plus-plus.org/ он умеет делать нужную перекодировку ("Кодировки" - "Кодировать в UTF-8 без BOM").
Виндовый блокнот умеет читать такие файлы, но вот сохраняет по умолчанию в Ansi :(
6 Alexander Bashkirov 29-09-2010 09:34
Кстати, можете просто виндовым блокнотом отредактировать phrase.txt который идет в комплекте с плагином.
7 Marine 29-09-2010 11:56
спасибо, все получилось! но неужели нельзя сделать так, чтобы ответ оказывался на той же странице где и кнопка для вопроса?
8 Alexander Bashkirov 29-09-2010 14:20
Дайте ссылку на сайт, где готовая работа - может быть, что-нибудь и придумаю.
9 Alex 05-10-2010 16:43
Отличный плагин! Пользуюсь с момента его написания :) Только надо не лениться наполнять фразами Файл phrase.txt (это про себя). Спасибо автору!
10 Alexander Bashkirov 06-10-2010 09:27
Пожалуйста :)
11 Dimko 05-11-2010 14:57
Блин, не работает. В одиночную запись вставляю, при просмотре вижу только код {alib_random_phrase}
Где копать подскажите?
12 Dimko 05-11-2010 15:16
Путь прописал /wp-content/plugins/phrase/phrase.txt в файле phrase.php, файл phrase.txt соответственно лежит в /wp-content/plugins/phrase/
Файлы правил Notepad++
13 Dimko 05-11-2010 15:33
Вобщем копаю дальше. Фраза выводится при создании поста на блоге, когда вставляешь {alib_random_phrase} код в запись. А как вывести фразу например в single.php, чтобы она автоматом во всех опубликованных постах была? Не ковырять ведь теперь все записи. Подскажите пожалуйста.
14 Alexander Bashkirov 05-11-2010 20:38
Dimko,
Вызовите функцию плагина alib_random_phrase_back($content) в нужном вам месте single.php следующим образом:
Должно помочь.
15 Dimko 05-11-2010 21:02
Alexander спасибо Вам за то что Вы сделали! Помогло, все работает как нужно! Пробел только убрал между < и ? и заработало. Спасибо еще раз!
16 Alexander Bashkirov 05-11-2010 22:49
Пробел - это, видимо, Wordpress-защита от взлома )))
Удачного использования :)
PS обновил пост - описал прямой вызов.
17 Dimko 06-11-2010 07:23
Александр, родился еще один вопрос: в постах цитата выводится
таким образом. Как вывести цитату в моем случае и возможно ли это? Чтобы фраза была оформлена также как в блоге оформлены все цитаты в постах. Спасибо!18 Alexander Bashkirov 06-11-2010 13:37
Все цитаты на WP-блоге штатно оформляются при помощи тега <blockquote&rt;
Фразы плагин "отдает" без какой-либо правки и "оборачивания" в теги.
Соответственно, отсюда есть как минимум 3 способа оформления цитаты так, как Вам надо:
1. заключить цитату в тег <blockquote>, например так:
<blockquote>цитата</blockquote> (самый правильный в Вашем случае способ) - это можно сделать в любом месте, так как CSS распространяется на всю область body в html
2. В файле стилей (обычно, но не обязательно style.css в папке темы) приписать к blockquote через запятую класс тега, который "оборачивает" Вашу цитату. Например, цитата выглядит так:
<span class='bbb'>Цитата</span>
В файле стилей (взял из темы classiс определено:
blockquote {
border-left: 5px solid #ccc;
margin-left: 1.5em;
padding-left: 5px;
}
Дописываете класс, получается:
blockquote, bbb {
border-left: 5px solid #ccc;
margin-left: 1.5em;
padding-left: 5px;
}
3. "Обернуть" в <blockquote> все фразы в файле (самый неправильный способ)
PS дайте, пожалуйста, ссылку на Ваш блог - интересно посмотреть, как "оно" работает )))
19 Dimko 06-11-2010 15:02
Alexander, именно через
20 Dimko 06-11-2010 16:21
И хотелось бы вывести эти фразы либо обрамленные рамкой, либо в виде цитат с другим фоном
21 Alexander Bashkirov 06-11-2010 16:51
Тогда самое простое (и самое неоптимальное с точки зрения удобства), что можно придумать - пишете там, где нужна цитата:
<span style='border:1px solid #ccc; font-color:#0000b0; background-color: #ddd;'>
<?php print alib_random_phrase_back('{alib_random_phrase}'); ?>
</span>
Соответственно, в style пишете CSS атрибуты - их гарантированно никто не перекроет (так как написанные таким образом атрибуты имеют для данного элемента максимальный приоритет при интерпретации браузером)
22 Dimko 07-11-2010 11:17
Не вышел каменный цветок учитель )) Ошибка возникает такая, что страница вообще не открывается.
23 Dimko 07-11-2010 11:20
Parse error: syntax error, unexpected '{' in бла бла бла/single.php on line 24
На 24 линии как раз код этот
24 Dimko 09-11-2010 20:24
Действовал согласно Ваших рекомендаций в письме, и все выглядит теперь в лучшем виде!
Александр, большое Вам человеческое Спасибо за оказанную помощь!
25 Alexander Bashkirov 10-11-2010 10:40
Рад был помочь :)
26 Владимир 25-01-2011 21:51
Дружище, а можно сделать, чтоб была "фраза дня", т.е. в течении дня показывалась одна и та же?
27 Владимир 25-01-2011 23:21
Спасибо за плагин, доработал до "фразы дня" через date("z")
28 Alexander Bashkirov 25-01-2011 23:42
Не успел я ответить :)
Пожалуйста!
Владимир, пришлите плагин, если не сложно - выложу и Вашу версию (с указанием ссылки на автора) - может, кому потребуется?
29 mad 30-03-2011 00:11
Спасибо за плагин.
Вопрос: Работает только в постах, а в Подвале не выполняется PHP. Для того чтобы работал PHP, стоит плагин "Exec-PHP". Подскажите, плиз, что нужно сделать, чтобы и в футере ваш плагин работал.
30 Alexander Bashkirov 30-03-2011 14:30
Странно. Подвал - обычный php файл, где работают все функции php.
Попробуйте написать в подвале что-то типа этого: - должно заработать.
31 Любаша ? Персиковое счастье ? 03-04-2011 16:12
Здравствуйте! Скажите, пожалуйста, а можно ли сделать вывод случайных фраз в виджете? Пробовала прописывать и (в этом случае просто пустое место в виджете отображает) и {alib_random_phrase} (в этом случае просто отображает эту фразу обычным текстом).
Если можно через виджет - подскажите, пожалуйста, как! А то все перепробовала, не получается =(
32 Любаша ? Персиковое счастье ? 03-04-2011 16:43
решила проблему с помощью плагина PHP Code Widget
Теперь код спокойно вставился в виджет и отображается, как надо. Осталось покопаться с настройками - чтобы выводилось не только правильно, но и красиво!
Спасибо Вам за плагин =)
33 Alexander Bashkirov 03-04-2011 19:37
Пожалуйста :)
...сделать, что ли виджет? :)
34 Саша 07-04-2011 16:06
Сделай виджет,ленивых много таких кто не хочет разбираться в коде,а будет виджет,прикрути к нему ссылочку на свой сайт )))
35 Alexander Bashkirov 08-04-2011 09:46
Поставил в планы :)
36 Piero 20-04-2011 23:29
Мой wordpress установлен в поддиректории, не в корневой папке сервера, в результате $_SERVER['DOCUMENT_ROOT'] - не срабатывает как корневая директория блога. Пришлось дописывать папки после $_SERVER['DOCUMENT_ROOT'], чтобы указать скрипту поддиректорию, в которой установлен wordpress, ибо я новичок и не знаю как домашнюю директорию wordpress указать. Разработчики, есть идеи?
37 Piero 22-04-2011 01:21
Разобрался, надо $_SERVER['DOCUMENT_ROOT'] заменить на ABSPATH, итого строка получается:
$alib_random_phrase_fname = ABSPATH.'phrase.txt';
Так все работает и для поддиректории...
38 Alexander Bashkirov 29-04-2011 10:58
Сделал виджет. Ссылка - в п.1 пп "Оригинальная версия". Если будете использовать версию с виджетом, то старую версию (без виджета) надо предварительно удалить.
39 aprl 23-08-2012 22:49
Спасибо. Мучался долго. но может теперь кому-то пригодиться.
Если Вам нужно запихнуть цитаты вместо родного блока с цитатой в теме (например у меня тема Evolution, там на главной предусмотрен родной блок с цитатой), то необходимо выполнить следующее:
1) ищем и открываем файл home.php в теме (или файл в вашей теме, отвечающий за главную страницу)
2) находим кусок кода в котором находится путь к ващей цитате.
у меня это выглядит так:
Где, собственно сам текст цитаты, а точнее некая ссылка на него в ядро темы (Александр, отредактируйте, если ошибаюсь, всё таки я дизайнер, а не кодер)
3) Строку
меняем на
и вуаля)
40 вова 26-12-2012 11:23
Спасибо, целый вечер искал что-то похожее и наконей нашел, работает на ура.
41 Alexander Bashkirov 26-12-2012 11:43
Пожалуйста :)
42 Надежда 29-03-2014 04:08
Здравствуйте!Не подскажете, как можно добавить цитату в шапку сайта?
43 Alexander Bashkirov 29-03-2014 13:01
Подправить в теме файл header.php - вставить в нужное место строку
44 Дмитрий 15-09-2014 16:19
Добрый день. Большое спасибо за полезный плагин.
Подскажите пожалуйста, а в каком месте кода плагина (версия для виджета) можно вставить скрипт (скрипт есть), чтобы появились кнопки соц. сетей, при нажатии на которые, показываемой в данный момент цитатой можно было бы поделиться в соц. сетях?
45 Alexander Bashkirov 16-09-2014 07:26
Добрый день.
Честно говоря, я написал плагин достаточно давно - 4 года назад, и уже не помню, что там к чему.
Из "общих соображений" я бы кстати пошел другим путем - передавал бы фразу в плагин шаринга в соцсетях.
Но, тк я Wordpress более не занимаюсь, то что-то более конкретное сказать не могу, извините.
46 Тимофей 16-04-2015 16:04
Александр, добрый день.
Скажите, а как использовать Ваш плагин при наличии двух и более текстовых файлов?
Задача: брать фразы из 2-х текстовых файлов и вставлять их на страницу с материалом чуть выше комментариев.
47 Стас 25-07-2017 14:22
http://ifish2.ru/quotes-collection-dlya-vyvoda-sluchai-nyh-tsitat-zapisei/
48 Андрей 05-08-2022 16:34
Доброго дня! Не знаете способ загрузить сразу большой список цитат в плагин? У него есть встроенный импорт в формате json, но похоже он подходит только для тех типов файлов, которые были экспортированы из самого плагина.
49 Alexander Bashkirov 31-08-2022 10:59
Нет, увы, не знаю(