1. Преамбула
Заметка посвящается тем, кто хочет перенести свой блог из ЖЖ, ЛЖР или другого блогосервиса, работающего на движке ЖЖ (LJ) в блог на Wordpress
2. Суть
В ЖЖ и сайтах, работающих на движке ЖЖ существует определенный тип поста - опрос. И переносящие свой блог пользователи сталкиваются с невозможностью стандартными средствами перенести опрос из ЖЖ или (в моем примере LJR) в свой блог на Wordpress.
3. Стратегия решения проблемы, плюсы и минусы.
А мы и не будем переносить результаты опроса из (в нашем случае) LJR, а будем отображать сам опрос, беря его с сайта.
+ Результаты опроса будут отображаться онлайн в нашем блоге, так же, как они будут и в блоге LJR
+ Пользователи сайта могут проголосовать в опросе, только зарегистрировавшись на старом сайте. Что плюс, если вы просто хотите сохранить результаты опроса на новом сайте/не хотите суммировать результаты из двух опросов.
- При отображении поста необходима связь с сайтом, если ее не будет или опрос будет удален, то это приведет к возникновению ошибки
- В конкретном примере я использовал довольно старую версию движка ЖЖ, которая применяется на сайте LJ.ROSSIA.ORG, посему вам потребуется подкорректировать код, если вы переносите блог с ЖЖ или другого сайта, работающего на том же движке.
4. Описание алгоритма.
1. Получить ID опроса (пользователь должен задать его вручную)
2. Выделить из страницы опроса его результаты и ссылки на участие в опросе.
3. Встроить эту информацию в пост Wordpress и отобразить ее.
5. Тестовый опрос.
Создан здесь:
http://lj.rossia.org/users/hex_laden/348192.htmlID: 1307
Страница опроса:
http://lj.rossia.org/poll/?id=1307&mode=results 6. Что понадобится
Внешний html-парсер, я использовал этот готовый
simple_html_dom.php7. Готовый код.
Сначала создаем файл с функцией, непосредственно занимающейся парсингом страницы опроса:
find('img[src=/img/dot.gif]'); //нашли приметный gif
$answer='';
foreach ($ret as $img)
{
//вытаскиваем родительский элемент
$parent=$img->parent();
//вытаскиваем его HTML-код
$answer=$parent->innertext;
}
//освобождаем ресурсы
$html->clear();
unset($html);
if ($answer=='') $answer='ERROR: GET DATA ERROR ['.$url.']';
return $answer;
}
?>
И создаем главный файл плагина с функцией обработки шорткода, который, будучи вставлен в пост отобразит наш опрос:
-1,
), $atts));
//Если id не задан, надо вывести сообщение об ошибке
if ($id==-1)
{
$ans='Poll ID not set!';
}
else
{
$ans=GetPoll($id);
}
return $ans;
}
add_shortcode ('ljrpoll','ljrpoll_shortcode');
?>
Для того, чтобы вставить в свой блог на Wordpress опрос с LJ.ROSSIA.ORG, останется добавить в пост следующий шорткод:
[ljrpoll id="
"]
Где
идентификатор опроса, например 1307
Тестовый пост с отображенным опросом здесь:
http://tolik-punkoff.com/2016/07/26/opros-s-lj-rossia-org-otobrazhaemyj-v-wordpress/ Код плагина доступен на PasteBin:
getpoll.php Основной файл плагинаИли можно скачать
архив с плагином с mega.nzПапку из архива надо поместить в директорию wp-content/plugins вашего сайта, после чего зайти в консоль на страницу плагинов (или обновить ее) и активировать плагин LJR-pollDisplay
Это репост заметки из моего блога на сайте
http://tolik-punkoff.comОригинал заметки находится здесь:
http://tolik-punkoff.com/2016/07/26/otobrazhenie-oprosov-iz-ljr-lzhr-tifaretnik-lj-rossia-org-i-vozmozhno-zhzh-livejournal-v-bloge-wordpress/(
Comments |
Comment on this)