Wordpress. Как новости одного сайта читать с другого?
Приветствую.
Зашёл на lookatme, смотрю, а там - помимо новостей самого LAM ещё новости их другого проекта. Точнее не новости, а одна новость. Ссылка ведет на саму новость другого их проекта.
Возникает вопрос - как такое реализовать на wordpress? У меня есть 2 проекта и хотелось бы в каждом выводить виджетом или как-то ещё новость (последний или рандомный пост) с другого проекта.
Спасибо за ответы.
rss читалка, которая есть - она не подходит. Мне надо моё форматирование новости.
вариантов масса:
1) парсер на бэкенде собирает новости, и заливает в базу, виджет выводит их (надо писать скрипты)
2) виджет грабит поток, кеширует его и выводит новости на базе него (надо писать код виджета)
3) виджет коннектится к базе другого проекта и выбирает новости (надо писать код виджета)
4) после загрузки страницы js-ом делается jsonp запрос к хосту, которые отдает новости в формате jsonp (надо писать фронтенд виджета и на источнике отдавать новости по jsonp )
5) в сайдбар вставляется стилизованный iframe в который загружается страница с удаленного сервера (на источнике сделать страницу в нужном дизайне с выводом последних новостей, которая не будет содержать базового дизайна)
...
Игорь Воротнёв: с какого перепуга виджеты (п.1-4) вдруг стали не экосистемой wp и не релевантны? Что делать, если человек знаком только с фронтендом(п.4)? Что делать человеку, если он не знаком с бэкэнд/фронтэнд разработкой (п.5)?
Мои ответы покрыли большинство возможных ситуаций. Нужный вариант ТС выберет исходя из своих знаний и возможностей... Ну, а с экосистемами и прочей хипстерской чушью я стараюсь не связываться..
Vitaliy Orlov: Вы таки не шутите? Под экосистемой я имею в виду в первую очередь родные API и функционал ядра, которые можно (и нужно) использовать.
1. Парсер? Собирает новости? Заливает в базу? Рили? Заняться нечем?
2. Виджет грабит поток? Виджет в WP - это UI и обертка для функционала. Функционал может грабить поток (я так понимаю речь об RSS-потоке). Вариант, который и я упомянул, но из вашего объяснения мало понятен.
3. Коннектиться к базе (!!!) другого проекта? Серьезно?
4. Да, JSON можно, вопрос в том, при чем тут виджеты опять? А вот как раз про самую важную часть - как этот JSON сгенерить и отдать вы умолчали.
5. Ифрейм. Ну серьезно?
Вы не с экосистемой связываться не хотите, а просто не зная возможностей платформы (как сделать правильно), пытаетесь прорубить окно топором. А потом мы годами боремся с вредными привычками типа использования query_posts и тд.
Игорь Воротнёв:
1) Рили. Самая простая задача, показывать динамику изменения позиций команд испанского футбола. Парсер marca.com + база + виджет
2) Любой поток, например погода для региона посетителя. geoip + xml яндекс погоды + кеширование, если обновление было недавно.
3) Вполне. Зачем делать overhead в виде того же xml-rpc, если можно сделать необходимую выборку одним запросом к базе?
4) При том, что в стандартный текстовый виджет, который идет из коробки, можно написать js который ajax-ом будет получать данные и формировать на основе этих данных вывод - при этом не понадобиться возиться с файлами темы. Для того, чтобы понять как отдать, достаточно погуглить по запросу "jsonp".
5) Вполне серьезно, это самый простой вариант, который используют например VK и Facebook для вывода блока последних постов из группы на сайтах. Он не требует практически знаний в сфере программирования.
В моем случае не отсутствие желания изучать досконально платформу и использовать все-все "горячие" штучки, а понимание того, что можно сделать намного быстрее и проще при этом не теряя в надежности. Да, можешь плеваться на iframe в виджете "Текст" из коробки. Однако на это потребуется потратить всего 10 минут. Сравни с предложенным тобой решением на REST API, особенно в виду того, что его будет делать человек у которого под ником написано "дизайнер".
Ну, и да, я не спорю, что где-то решения могут быть не доскональным и не самыми оптимизированным и современным, однако это будет работать.
Думаю, дискуссия на этом исчерпана, ТС получил ответы - как пользоваться этой информацией пусть решает сам.
1. Правильный способ: REST API. Получаете JSON.
2. Нормальный, но уже устаревший способ: Ajax'ом спрашиваете URL на втором сайте, на нем же обработчик возвращает вам нужный контент. Не забывайте про CORS.
3. RSS вполне тоже вариант.
4. Олдскул - XML-RPC.