Безголовая CMS: Wordpress Rest-API — добавление ссылок на существующие посты/страницы

Мы хотим использовать Wordpress Rest-API для создания страницы, отделенной от серверной части. Однако нас все еще беспокоят несколько вещей: в бэкенде WordPress можно добавить ссылки в редакторе содержимого страницы или сообщения, и обычно получается список всех существующих страниц и сообщений той же страницы, на которые можно ссылаться. При отделении серверной части он не знает точных URL-адресов других страниц, и мы должны предоставить это. Есть ли возможность сообщить WordPress, какие ссылки доступны?

Заранее спасибо. Ваше здоровье




Ответы (4)


Я не уверен, что вы пытаетесь спросить. WordPress REST API просто предоставляет способ доступа к сообщениям и т. д. из какой-либо другой части веб-сайта (например, темы и т. д.). Страницы по-прежнему будут доступны из административной панели и JSON/REST API: https://developer.wordpress.org/rest-api/reference/pages/

person Robert Dundon    schedule 13.06.2017
comment
Мы как-то решили это. Я не принимал непосредственного участия, но думаю, что нужно было изменить только настройку Wordpress. Теперь внутренние ссылки, а также ссылка «Просмотреть сайт» работают корректно. Проблема заключалась в следующем: серверная часть находилась по адресу api.whateverpage.com, а сама страница (интерфейс) — по адресу whatotherurl.com. Мой вопрос заключался в том, как я могу сделать ссылку с api.whateverpage.com на страницу, где находится фактический интерфейс. - person Merc; 14.06.2017

Для тех, кто ищет ответ:

В разделе «Настройки» > «Основные» есть две настройки URL.

введите здесь описание изображения

Адрес WordPress (URL) должен быть URL-адресом вашего сайта API. Например, api.whatever.com.

Адрес сайта (URL) должен быть URL-адресом внешнего интерфейса. Например, www.whatever.com.

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

person Slushman    schedule 08.08.2018
comment
Хороший. Этой функции точно не существовало, когда я разместил свой вопрос. Мило, что они идут в этом направлении. ???? - person Merc; 20.01.2021
comment
Мне пришлось позволить URL-адресу wp-json api основываться на URL-адресе WordPress, а не на адресе сайта. Помог следующий комментарий: github.com/WordPress/gutenberg/issues/ - person Samuel; 31.01.2021

В частности, с WordPress вы можете убедиться, что вы не переписываете постоянные ссылки. Таким образом, все они остаются на site.com/?p=post-id.

Таким образом, легко анализировать выборку новых страниц. Затем замените hrefs тем, что нужно вашему интерфейсу.

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

Или вы можете даже сохранить сопоставление идентификаторов на уровне представления с вашими собственными слагами.

person Kevin    schedule 14.04.2018

Изменение site_url у меня не работает.

Поскольку у меня также есть тема WordPress с пользовательскими контроллерами отдыха, плюс wp-json ломается, если я изменяю URL-адрес сайта

Мой бэкэнд размещен в приложении Digital Ocean Мой интерфейс размещен в vercel

Я исправил это с помощью плагина wordpress под названием make-paths-relative. Но поскольку мой бэкэнд не знает, где находится мой интерфейс, я добавил одно изменение в плагине по адресу:

frontend/class-make-paths-relative.php строка 123

Я добавил константу FRONTEND_URL, которую определяю в wp-config $relative_link = FRONTEND_URL.$link;

Это изменяет как постоянную ссылку в моем бэкэнде сообщения, страницы или CPT, так и внутренние ссылки, а также ссылки в редакторе контента.

Я также сделал запрос автору плагина

person Merijn    schedule 19.01.2021