Наполнение WordPress сайта при помощи WordPress REST API

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Я не знаю точно, но попробуй так - HTTP-запрос - И там именно DELETE
В данных передавай только ID коммента
 

Вложения

FelixCat

Client
Регистрация
08.12.2015
Сообщения
28
Благодарностей
2
Баллы
3

Tronheym

Client
Регистрация
13.10.2016
Сообщения
146
Благодарностей
30
Баллы
28

FelixCat

Client
Регистрация
08.12.2015
Сообщения
28
Благодарностей
2
Баллы
3

Tronheym

Client
Регистрация
13.10.2016
Сообщения
146
Благодарностей
30
Баллы
28
А у меня другой вопрос - как парсить чужой сайт через REST API..
сайт по адресу https://сайт.ру/wp-json/wp/v2/posts/ доступен..
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
А у меня другой вопрос - как парсить чужой сайт через REST API..
сайт по адресу https://сайт.ру/wp-json/wp/v2/posts/ доступен..
И зачем?
Если доступы к этому АПИ есть, тогда просто подбираете GET запросы к постам или страницам. Только это изврат...
 

Tronheym

Client
Регистрация
13.10.2016
Сообщения
146
Благодарностей
30
Баллы
28
И зачем?
Если доступы к этому АПИ есть, тогда просто подбираете GET запросы к постам или страницам. Только это изврат...
ну я хочу сделать дубликат сайта.. с чужого сайта на WP перетянуть контент на свой сайт на WP.. REST API доступен... единственное текст по запросу https://сайт.ру/wp-json/wp/v2/posts/<id> выводится в виде кода
C#:
\u0410\u043b\u0438\u044f\u0442
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Сначала /wp/v2/posts все id постов получаете, а потом в цикле контент с каждого /wp/v2/posts/{-Variables.id-}
 

Tronheym

Client
Регистрация
13.10.2016
Сообщения
146
Благодарностей
30
Баллы
28
Сначала /wp/v2/posts все id постов получаете, а потом в цикле контент с каждого /wp/v2/posts/{-Variables.id-}
да это понятно... я про то что текст публикации выдается не в виде русских букв, а в виде кода
C#:
\u0410\u043b\u0438\u044f\u0442
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
  • Спасибо
Реакции: Tronheym

todayer

Client
Регистрация
07.08.2013
Сообщения
959
Благодарностей
397
Баллы
63
Подскажите кто в курсе, как отправить контент с html тегами, картинками в посте и т.п?
 

Tronheym

Client
Регистрация
13.10.2016
Сообщения
146
Благодарностей
30
Баллы
28
  • Спасибо
Реакции: kagorec и todayer

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
только сначала его надо обработать и привести в 1 строчку
 
  • Спасибо
Реакции: todayer

todayer

Client
Регистрация
07.08.2013
Сообщения
959
Благодарностей
397
Баллы
63
только сначала его надо обработать и привести в 1 строчку
Да я кавычки заменил с двойных на одинарные и все заработало. Мне надо было свой велосипед сделать.
 
  • Спасибо
Реакции: backoff

DRIVONT

Client
Регистрация
15.02.2016
Сообщения
100
Благодарностей
14
Баллы
18
Кто победил генерацию "тегов"? Кубик выполняется в ответе пусто и на сервере соответственно тоже:bc:

Еще мб кому полезно будет. WP REST API Controller контроллер, зайдете в настройки поймете для чего он

-Вопрос закрыт, но мб кому пригодится.
Протокол замена с http на https (если стоит) помогает *lol* проблема как всегда под носом была а я интернет рыл) но за то по несколько раз документацию перечитал, что полезно
 
Последнее редактирование:

AlexLutsenko

Client
Регистрация
24.03.2016
Сообщения
27
Благодарностей
3
Баллы
3
а alt для картинок и ключевики для yoast seo например можно передавать?
 

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Учитывая высокую активность в теме по продаже шаблона парсера из Вебархива, я сделал вывод, что у людей на руках много текстов. И мой шаблон по публикации в WordPress, по средствам WordPress rest API, будет полезен людям.

Предупреждаю заранее:
Я хронический троеШник и вы можете увидеть много ошибок.
Мои познания в английском языке "относительны", поэтому переменные написаны, как на английском языке так и русскими словами латиницей.

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

Для работы с WordPress rest API на сайте должны быть установлены эти плагины:

Внешне шаблон выглядит так:

Посмотреть вложение 51211

Входные настройки выглядят так:

Посмотреть вложение 51210

Настройка шаблона

В архиве с шаблоном есть две папки img и stati
Папка img необходима для временного хранения изображений
В папку stati нужно поместить тхт файлы со статьями. Формат файла следующий: Первая строка это заголовок, всё остальное тело статьи. Пример прилагается.

Входные настройки проще не придумаешь: домен вашего сайта без http и www, логин и пароль от вашей учётной записи на сайте, установить чекбокс, если хотите автоматически генерировать теги(подробнее об этой функции расскажу далее)

Как это работает?

В шаблоне все основные блоки подписаны. Расскажу для чего нужен каждый блок и будет понятна логика работы шаблона.

"Конвертим логин и пароль в base64"
Авторизация по средствам WordPress rest API требует чтобы логин и пароль были в формате Base64.

"Получаем статью из файла"
В данном блоке берётся заголовок и текст статьи из тхт файла

"Авто генерация тегов"
Если вы указали что вам нужно генерировать теги, в этом блоке происходит процесс генерации тегов по средствам сервиса http://syn1.ru/tools/keygeneratortext. Получается не очень качественно, но меня устраивает.

"Получение id тегов с вашего сайта"
Данные блок отправляет запрос к вашему сайту . С целью получить id, сгенерированный ранее, тегов. Если на вашем сайте такого тега нет, то он создаётся.

"Качаем картинку с яндекс"
Мне было лень самому подбирать картинки к статьям, поэтому я сделал данный блок. Он делает запрос в Яндекс картинки с заголовком статьи и скачивает случайную картинку шириной не менее 600 пикселей

"Загрузка картинки"
Здесь происходит загрузка картинки на сервер и получение её id. Хочу выразить благодарность пользователю @Dozer009 за то что поделился способом загрузки изображений

"Подготовка поста"
Это самый муторный и неоднозначный блок. В нём происходит подготовка текста статьи к отправки post запросом. Поскольку шаблон несколько раз переделывался под разные источники, я не уверен в актуальности всех кубиков, но удалять их не решаюсь. Их присутствие не мешает, а из-за отсутствия статья может не опубликоваться. С целью отслеживать символы мешающие публикации, в случае ошибки при публикации, весь post запрос сохраняется файл log_error_posts.txt.

"Отправка поста"
Отправка Post запроса, для публикации статьи, и удаление исходных файлов.

Могут возникать ошибки при добавление тегов. Поскольку тегов много и запросы идут часто, хостинг может определить их как нежелательную активность и заблокировать ваши запросы. В этом случае вам помогут прокси(в подписи есть ссылка на не дорогие). Ну или добавьте паузу.

Пользуйтесь на здоровье!

Хочу напомнить, что я крайне положительно отношусь к конструктивной критике. Рад буду услышать идеи по улучшению шаблона. За оскорбление буду отправлять жалобу!
Тоже делал такой для заказчика, только там в 2 раза моштабнее :-)

Не совсем только понятно пишете API а ещё какие-то дополнительные плагины нужны :bw:

Я просто на POST GET запросах реализовал, с полностью припиской под редиретов редиректов и тд.

Есть документация API, хотелось бы посмотреть что-то новое может узнать?)
 
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Тоже делал такой для заказчика, только там в 2 раза моштабнее :-)

Не совсем только понятно пишете API а ещё какие-то дополнительные плагины нужны :bw:

Я просто на POST GET запросах реализовал, с полностью припиской под редиретов редиректов и тд.

Есть документация API, хотелось бы посмотреть что-то новое может узнать?)

Да, WordPress очень удобен для нашего брата. Всё сделано довольно просто шаблонно и стандартно. Я в запросах чайник, но кое-какие действия даже я смог сделать на запросах
 
  • Спасибо
Реакции: todayer и _HEDELKA_

Mixis

Client
Регистрация
07.05.2020
Сообщения
67
Благодарностей
10
Баллы
8

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
ну как как
формируешь что теме надо и как должно выглядеть, потому удаляешь переносы строк и экранируешь разные символы типа кавычек..
было так "
при отправке должно быть так \"
 
  • Спасибо
Реакции: Respect

Mixis

Client
Регистрация
07.05.2020
Сообщения
67
Благодарностей
10
Баллы
8
экранируешь разные символы
Кавычки, понятно\"Espace стоки.
А другие? Какие?
<!-- wp:image {"id":46499,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://sait.ru/wp-content/uploads/2024/01/intro-1703861442.jpg" alt="alt" class="wp-image-46499"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Абзац статьи</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Абзац статьи.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Абзац статьи.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Загаловок-2</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":46500,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://sait.ru/wp-content/uploads/2024/01/intro-1703861442.jpg" alt="alt" class="wp-image-46500"/></figure>
<!-- /wp:image -->
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
тебе ВП всегда выдаст ошибку если что-то не заэкранил... тестируй
 
  • Спасибо
Реакции: Respect

Respect

Client
Регистрация
26.12.2015
Сообщения
18
Благодарностей
3
Баллы
3
тебе ВП всегда выдаст ошибку если что-то не заэкранил... тестируй
Может сталкивался кто и подскажет, почему при попытке отправить более 1500 символов в запросе в ключе "content", пост не публикуется и выдаётся ошибка:

414: Request-URI Too Large или 502: Bad gateway?
 

Mixis

Client
Регистрация
07.05.2020
Сообщения
67
Благодарностей
10
Баллы
8
  • Спасибо
Реакции: Respect

Respect

Client
Регистрация
26.12.2015
Сообщения
18
Благодарностей
3
Баллы
3

Mixis

Client
Регистрация
07.05.2020
Сообщения
67
Благодарностей
10
Баллы
8
  • Спасибо
Реакции: Respect

Respect

Client
Регистрация
26.12.2015
Сообщения
18
Благодарностей
3
Баллы
3
НЕ получалось, возможно из-за больших статей. POST-запросом только картинки закидываю,
Подскажите, пожалуйста, вот ещё что: как через POST-запрос передать alt и title изображения?
 
Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
  • Спасибо
Реакции: Respect

kagorec

Client
Регистрация
24.08.2013
Сообщения
979
Благодарностей
523
Баллы
93
Для тех у кого проблемы с 401 ошибкой и you are not allowed to create posts as this user при постинге с картинкой:

1) Ставим и активируем плаг application-passwords
2) в .htaccess после RewriteEngine On пишем или меняем на:
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

Мне помогло.

P.S там кстати написано что плагин можно не ставить с версии 5.6 и выше, но как работать без него и вышеупомянутых плагинов я хз. Было бы кулл выставить такое решение.
Спасибо, достаточно плагина чтобы исправить проблему
C#:
{"code":"rest_cannot_create","message":"Sorry, you are not allowed to create posts as this user.","data":{"status":401}}
На локалке теперь можно постить без проблем (сервер apache и htaccess не понадобилось править ).
 
  • Спасибо
Реакции: djaga

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)