rss парсер в wordpress с расширением SimpleXML

При работе по дизайну на одном из блогов столкнулся с такой проблемой, а уже писал о ней, но хотелось бы остановиться поподробнее. Итак необходимо в каком нибудь месте вывести парсинг записей с другого блога.
С развитием этого гребаного php конечно же использую расширение SimpleXML

<?
$url = "http://сайтЮБ.name/?feed=rss2"; //адрес RSS ленты

$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект

//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
echo ‘<a href="’.$item->link.’">’;
echo ‘<h2 id="par">’.($item->title).'</h2>’; //выводим на печать заголовок статьи
echo ‘</a>’;
echo ‘<p id="parte">’. ($item->description).'</p>’; //выводим на печать текст статьи
}

?>

Да замечательно работает без проблем, вставляем код в нужное место и ушел, если бы не одно но, здесь конечно мнение спецов php и wordpress необходимо. Какими массивами этого расширения SimpleXML, вывести картинки вместе с записью, иными словами, что добавить в этот нехитрый файлик, который я привел выше. Есть спецы в этом направлении или не по теме вопрос, хотя парсинг нужен именно с wordpress, к сожалению умельцы не написали плагин позволяющий это делать,(Ю.Б. я уже как гугл, практически все знаю, и не беру в расчет всевозможные граберы, они мне не нужны, я парсю записи со своего же блога). Есть ли спецы способные исполнить такой код или нет, если необходимо, можно за денежки?
Мне нужна элементарщина, вывести записи вместе с картинками(которые я пропущу через тумб до нужного размера, так как при прописки некоторых массивов выводит например все картинки и размера которые в блоге, а мне надо одну единственную и неповторимую.

Должны быть картинки. Откройте rss-ссылку, которую грабите, в любом браузере, далее -> View Source и посмотрите блок description. Есть там «упоминание» картинок или нет? Если есть, то тогда это проблема вашего интерпретатора – он их просто «не понимает».

Должны быть картинки. Откройте rss-ссылку, которую грабите, в любом браузере, далее -> View Source и посмотрите блок description. Есть там «упоминание» картинок или нет? Если есть, то тогда это проблема вашего интерпретатора - он их просто «не понимает».

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

Конструкция $item->description выводит картинки, если в сграбленной ссылке они есть.

Для примера взял этот URL – http://spyrestudios.com/feed/ – картинки транслируются. У вас URL какой? Там в блоке description есть «упоминание» картинок или нет? Если есть, но вы их не видите там, куда транслируете, то это проблема вашего интерпретатора (чем смотрите?)… впрочем, я об этом уже писал.

Вот блок description.

<description>&lt;a href="http://spyrestudios.com/15-guerrilla-marketing-tips-for-freelancers" title="15 Guerrilla Marketing Tips For Freelancers"&gt;&lt;img src="http://spyrestudios.com/wp-content/uploads/guerrilla/guerrilla-marketing.jpg" alt="Guerrilla Marketing for Freelancers" class="frameleft2" /&gt;&lt;/a&gt;

Marketing can be the one thing in your business that sets you apart from your competition, yet so many freelancers are either uneducated on ways to market themselves or are just a bit scared to think outside the box. Lucky for you, we're doing all of the heavy thinking here today.

Guerrilla marketing is a great way to showcase your freelance business to potential clients without using much cash, thus keeping your business costs low and your ability to pick up and move onto another idea seem almost seamless in transition. So here are 15 killer guerrilla marketing tactics you can start using today.</description>

Видите – он содержит тег img. После сграбливания ссылки при помощи SimpleXML и последующего вывода при помощи конструкции $item->description – картинка отображается. Что у вас за проблема – мне не понятно. Дайте ссылку, чтоли… что вы там грабите?

а понял, в чем недопонимание, интерпретатор отображает все нормал, возмем посмотреть через оперу10 хотябы, я же писал совсем о другом, что при разработке дизайна сайта на wordpress , появилась необходимость вывести через парсинг новости с другого блога( пример в блог http://oblast63.ru необходимо вставить парсер из записей блога http://oblast63.ru/news) так вот при вставке этого кода(я писал его выше) выводит только записи и названия, могу вывести рубрику и даты(но это ерунда), а вот картинки не выводит например вставляем в home.php:

<?php
global $elena;
foreach ($options as $value) {
if (get_settings( $value[‘id’] ) === FALSE) { $$value[‘id’] = $value[‘std’]; } else { $$value[‘id’] = get_settings( $value[‘id’] ); } }
?>
<?
$url = "$lena_par1"; //адрес RSS ленты

$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект

//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
echo ‘<a href="’.$item->link.’">’;
echo ‘<h2 id="par">’.($item->title).'</h2>’; //выводим на печать заголовок статьи
echo ‘</a>’;
echo ‘<p id="parte">’. ($item->description).'</p>’; //выводим на печать текст статьи
}

?></td>
так вот в этом месте не выводит картинки, только текст и заголовки(и прочую ерунду смотри выше), вот в чем дело и как ты там сайт не смотри, через какой интерпретатор ты имеешь ввиду. я сам не доганю, тормажу наверное малость, сразу не объяснил, извини бессонные ночи безжалостные скрипты и т.д, а грабь хоть какой блог /?feed=rss2 доступен

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

vanicon, Вам надо либо выспаться, либо немного напрячься и еще раз более внятно объяснить, что именно у Вас не получается.

Замените в своем коде (сообщение #6) строку: $url = "$lena_par1";
на $url = ‘http://spyrestudios.com/feed/’; и будут Вам картинки.

Если после замены результат Вас удовлетворит, то перечитайте сообщения 2, 4, 5 – там ответ на Ваш вопрос. Если результат Вас не удовлетворит – найдите другие слова, чтобы описать проблему.

при чем здесь "$lena_par1" я не пойму, ты же видишь, что это прибамбас с функтейшена, ты просто не можешь этого не видеть, ну хорошо пускай будет так, постараюсь объяснить еще раз, (спасибо, сегодня кстати выспался только сейчас только сел)
<?
$url = "http://oblast63.ru/news/?feed=rss2"; //адрес RSS ленты

$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект

//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
echo ‘<a href="’.$item->link.’">’;
echo ‘<h2 id="par">’.($item->title).'</h2>’; //выводим на печать заголовок статьи
echo ‘</a>’;
echo ‘<p id="parte">’. ($item->description).'</p>’; //выводим на печать текст статьи
}

?>

опять все тот же ненавистный мне кодик., я не пойму в чем прикол, ну вставь этот код в дефултный home.php ну если хочешь пришлю тебе свой(хотя не знаю будет ли в восторге самарский блогер).
Не отображает картинки посмотри сам вот например http://oblast63.ru там внизу мир нужных новостей и т.д так вот в этой рамки записи парсятся с блога http://oblast63.ru/news , ради тебя даже изменил функтейшн, хотя уверен что это не нужно было делать и прописал вместо $url = "$lena_par1" $url = "http://oblast63.ru/news/?feed=rss2"; это адрес RSS ленты а вот так http://oblast63.ru/feed не выводит, только через /?feed=rss2 или atom?
Вот даже не знаю что еще написать,(может я действительно тормоз, ну ткни тогда чайника носом где проблема, если знаешь конечно) На счет других слов не знаю, постараюсь ее описать еще раз если нужно, к сожалению думаю это бесполезно, так как на этом форуме я не нашел ответ ни на один из моих вопросов по wordpress (Ю.Б. подтвердит, он хоть не Гугл, но практически все знает), можете ли вы порекомендовать мне какие нибудь другие форумы по wordpress (только не это чудо http://mywordpress.ru/support/)

при чем здесь "$lena_par1" я не пойму

Потому, что я не только знаю, что говорю, но также проверил Ваш код прежде чем посоветовал Вам подставить туда ссылку на фид http://spyrestudios.com/feed/ (кстати, на самом деле она редиректится на http://feeds2.feedburner.com/SpyreStudios , но "feed", "feed=rss2" или вообще редирект куда-то – в данном случае не принципиально, т.к. сервер все равно возвращает rss-клиенту соответствующий xml-документ).

Что касается ответа на Ваш вопрос: у Вас, подчеркиваю – у Вас! – картинки не выводятся, потому, что их там нет. Сюрприз?

Я Вам еще во втором сообщении сказал: «посмотрите блок description. Есть там "упоминание" картинок или нет?», – а в четвертом сообщении предложил убедиться самостоятельно, что картинки выводятся, дав ссылку на фид, у которого в блоке description есть "упоминание" картинок. Более того – в следующем сообщении я привел целиком блок description и обратил Ваше внимание на то, что он содержит тег для вывода картинок. И Ваш код покажет ее. Потому, что она там есть. Если вы все еще сомневаетесь, что конструкция $item->description выводит картинки, то просто последуйте моему совету, подставьте ему ссылку на тот фид, у которго в description-е есть картинки.

В общем варианта у Вас два: или засунуть, таки картинки в description (тогда конструкция $item->description будет работатать так Вы того хотите); или забить на содержимое блока description и выводить содержимое других блоков… с картинками.

Да это и слону понятно, что в коде нет переменой отвечающий за вывод картинки, я и просил ответа на этот элементарный вопрос- какой переменной мне их вывести вот и все, что еще добавить в код, сразу же видно, что ее в коде нет изначально, я же не спрашиваю как я потом буду эту переменную пропускать через тумб или джери, для получения картинки нужного мне размера и как буду ограничивать вывод их количества, так как предпологаю, что на этом форуме такого ответа тем более не получить, да дела, пара писать пару постов про этот действительно нужный и полезный форум.

Слону, может, и понятно, а я из этого потока подсознания нифига не понял. Впрочем, не очень-то и хотелось.

Ну ну не понял, никогда не поверю, уж наверное сразу прикинул что к чему, не мучай плохого танцора, скажи что там с этим <content:encoded> делать, какими переменными вывести картинки и как их потом прогнать через тумб хотя бы, для уменьшения размера и ограничить этой переменной выводить только одну любую фотку (Плиз я больше не буду простите меня 🙂 и =) за мои прошлые движения, осталось 7 дней а шаблон еще в черновике, или подскажи адрес хорошего хирурга, пусть отрежет что посчитает нужным, лишь бы код работал)

что там с этим <content:encoded> делать
<?php

// URL RSS потока
$rss_url = 'http://oblast63.ru/news/?feed=rss2';

// Создаем объект и грузим документ
$rss = simplexml_load_file($rss_url);

// Получаем массив префиксов из rss-ленты 
$ns = $rss->getDocNamespaces();

// перебираем
foreach ($rss->channel->item as $item) {
        $title = $item->title;
        $content = $item->children($ns['content'])->encoded;
        $link = $item->link;

// оформляем и выводим
echo '<a href="' . $link . '" title="'. $title . '"><h2 id="par">'. $title .'</h2></a>';
echo '<p id="parte">' . $content . '</p>';
}?>

upd на будующее: если оба блога используют одну базу, то необязательно распарсивать rss.

upd на будующее: если оба блога используют одну базу, то необязательно распарсивать rss.

Я вот тоже об этом уже думал, вот возмем phpmyadmin блоги к сожалению не используют одну базу, так как на каждом блоге свой движок, на одном даже mu стоит, но дело не в этом, в одном phpmyadmin у одного пользователя имеются две базы пусть там "1" и "2", не будем вдаваться в подробности как там wordpress делает запрос в базы и выводят туда сюда, интересно возможно ли например чтобы на одной странице, там где мне нужно выводились записи с базы №2 там или три посредством этого же движка выводились записи с другой базы тоже wordpress? но не этого движка или необходимо в движке что-нибудь править (извени может неправильно что объясняю), и сразу еще один вопрос про базы, возможно ли пользователю например 5 баз данных объединить форму входа в различные движки, а теперь по русски (извини хохлам 50%скидка) то есть я понимаю. что при регистрации нового пользователя при соблюдении различных условий в таблице wp_users создается соответствующая запись, так возможно ли что бы при регистрации пользователя в мой сайт/news прописывались бы одни и те же значения в таблицу wp_users сайта мойсайт/pono и в таблицу главного сайт просто мой сайт,
Р.S Крутил несколько дней плагин бадипресс, разложил его по полочкам, в принципе если изменить там у пользователя форму создания блогов его можно будет прилепить к обычному wordpress, эксперимент сей проводиться мной в настоящее время, но пока есть взлеты, но больше всего падений, движок практически весь приходится перекраивать, и получается не wordpress а хз, но работает тих тих. Вот если бы он заработал отпала бы тогда необходимость в парсерах. спасибо за код сейчас покручу отпишусь что там вышло

Спасибо действительно все гениальное просто, да еще раз подтверждается что не возможно все знать, а времени подучить массивы нет, я как понял там $ns что ли выводит, а я вот хочу ее через тумб пропустить, вот я вставил твой код http://oblast63.ru/pravoslavie работает, но картинки такие какие в записяхвроде бы тоже ничего но если картинки будут разные сайдбар постоянно прыгать будет, ну в стилях я пропишу ее где находится но вот как размер уменьшить, через тумб что ли, в теме используется тумб, сижу репу чешу, как соеденить что ли или джери моя палочка выручалочка, но в любом случае спасибо тебе

Хотелось бы написать , что решение было очень быстро найдено на одном из форумов здесь http://ru.forums.wordpress.org/topic/%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80-hml-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-simplehml?replies=5.
Все оказалось до безумия просто и мне честно сказать неловко что я не видел этого, а необходимо было всего прописать в стили
p img {
max-width: 100px;
height: auto;
}

Спасибо Сергею уже второй раз выручает меня из беды, первый был по wordpress mu,

Anonymous
Отправить
Ответ на: