Wordpress и динамический роутинг или типа того

Ragnarok
На сайте с 25.06.2010
Offline
208
2636

Есть необходимость выводить на сайте на WordPress статьи, подгружаемые со стороннего ресурса средствами api. Ресурс возвращает JSON с id, title, content, slug -- всё что нужно.

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

Интересует, как это лучше всего организовать, чтобы работали вложенные страницы?

api вернуло список статей. я их все вывел на странице api_articles, через шорткод или шаблон страницы.

нужно чтобы каждую можно было открыть по ссылке api_articles/article1, api_articles_article2 и т.п. как?

//TODO: перестать откладывать на потом
SeVlad
На сайте с 03.11.2008
Offline
1433
#1
Ragnarok:
нужно чтобы каждую можно было открыть по ссылке api_articles/article1, api_articles_article2 и т.п. как?

Не понятно только - посты импортируются в ВП или это просто список линков на донора? Если первое - есть плаги для ипорта через JSON.

А если второе - воще не ясно в чём проблема? Ты же вроде все сделал. Не передаётся урл что ли?

Да, и причём вложенность?

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Топики помощи с ⓌordPress (https://searchengines.guru/ru/forum/1032910 ) и основы безопасности сайтов ( https://searchengines.guru/ru/forum/774117 ). *** Помощь\консультации в топиках форума - БЕСПЛАТНО. Платные услуги ( https://wp.me/P3YHjQ-3 ) - с бюджетом от 150$ ***
Ragnarok
На сайте с 25.06.2010
Offline
208
#2
SeVlad:
Не понятно только - посты импортируются в ВП ... есть плаги для ипорта через JSON.

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

SeVlad:

или это просто список линков на донора? А если второе - воще не ясно в чём проблема? Ты же вроде все сделал. Не передаётся урл что ли?
Да, и причём вложенность?

не внешние ссылки на донора (если бы так просто =) ), а внутренние, всё должно быть в пределах этого же сайта

SeVlad
На сайте с 03.11.2008
Offline
1433
#3
Ragnarok:
всё должно быть в пределах этого же сайта

Ну так импорт контента через JSON же? Есть готовые плаги - не искал что ли?

..Или я чего-то не понимаю.

Ragnarok
На сайте с 25.06.2010
Offline
208
#4
SeVlad:
Ну так импорт контента через JSON же? Есть готовые плаги - не искал что ли?

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

SeVlad
На сайте с 03.11.2008
Offline
1433
#5
Ragnarok:
данные должны появляться автоматически при их появлении на сайте с api, без импорта

вотоночёоказыввается..

Ну вообще без импорта невозможно - посты-то в базу должны заносится (а если нет - ВП тут вообще не причём :)). А вот моментально...

Если реалтайм не критичен, то самое простое - кроном импортить. Скажем раз в час.

Если нужно более часто, то отдельным скриптом, опять же по крону, но уже каждые 10 сек проверять обнову донора и если есть - запускать импорт.

Ну как-то так я думаю.

Ragnarok
На сайте с 25.06.2010
Offline
208
#6
SeVlad:
посты-то в базу должны заносится

не обязательно.. человек запрашивает какой-нибудь /api_news/123-blabla, скрипт получает это 123-blabla, делает запрос к api и возвращает страницу, или 404 если такой нет. Сделать это на каком-нибудь Yii2 довольно просто, а вот как с WP..

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

SeVlad
На сайте с 03.11.2008
Offline
1433
#7
Ragnarok:
не обязательно..

Если не обязательно, то к ВП это уже отношения как бэ и не имеет.

Если ты действительно хочешь роутинг, то можешь его в шаблон(ы) темы запихать. Будет казаться, что контен на ВП :)

TA
На сайте с 12.06.2009
Offline
116
TiA
#8
Ragnarok:
Есть необходимость выводить на сайте на WordPress статьи, подгружаемые со стороннего ресурса средствами api. Ресурс возвращает JSON с id, title, content, slug -- всё что нужно.
На сайте это должно выглядеть как список статей, каждую из которых необходимо открывать по своей ссылке.
Интересует, как это лучше всего организовать, чтобы работали вложенные страницы?

api вернуло список статей. я их все вывел на странице api_articles, через шорткод или шаблон страницы.
нужно чтобы каждую можно было открыть по ссылке api_articles/article1, api_articles_article2 и т.п. как?

Если вам нужно выводить на сайте материалы, которые подгружаются с внешнего сайта, то самым разумным и быстрым решением будет их синхронизация с основным сайтом на WordPress.

Грубо говоря, при изменении материалов на стороннем ресурсе он может посылать запрос на ваш сайт для синхронизации изменений. В процессе на вашем сайте будут добавляться/изменяться/удаляться статьи. Это позволит не обращаться каждый раз к серверу по API и не замедлять загрузку страницы. Запрос к стороннему серверу - это обычно лишние 0.2 - 1 секунда к времени загрузки.

Второй неплохой способ. На сайте на WP в статьях и рубриках фактически будут храниться параметры для запроса на сторонний сайт. Содержимое будет подгружать непосредственно сам пользователь напрямую со стороннего сайта через AJAX. Полученные JSON данные через какой-то шаблонизатор будут приводиться в нужный вид. У этого способа есть сразу три проблемы: первая - это Same Origin Policy, которую можно как-то решить. Вторая проблема связана с индексацией сайта. Вряд ли поисковый робот будет выполнять AJAX запросы. Третья проблема связана с добавлением записей. Ее можно решить как описано выше.

В сухом остатке. Смысл заморачиваться с загрузкой информации напрямую с внешнего API есть только в том случае, если данные очень часто меняются. В остальных случаях лучше заранее синхронизировать содержимое сайта по API

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий