Представим ситуацию: у вас есть большое кол-во контента, которое представлено либо уже в готовом виде, либо в легко считываемых форматах (ексель, БД и т.д.), и вам необходимо разместить этот контент на своём сайте. Если делать это в ручную, то у вас уйдёт уйма времени, и есть вероятность, что после несколько добавленных записей вам это надоест.
И что делать, если вам необходимо разместить более 1000 записей? Это просто нереально сделать в ручную.
Нам на помощь приходит Rest Api.
Переходим сразу к делу:
- Проверяем свой сайт, чтобы всё работало. Качаем плагин miniOrange API Authentication. Открываем его, выбираем Basic Authentication Method, на следующем шаге нам доступен Username & Password with Base64 Encoding, нажимаем «Далее». И тестируем, нажав на «Test Configuration», не забываем, что у вас должен быть верно написан пароль. Если у вас есть записи — они отображаться в JSON формате.
- Настраиваем данные. Итак, нам нужно передать наши данные на сервер в определенном формате — JSON. Ничего сложного в нём нет. Экранируем все кавычки. Вот пример:
Title — название нашей записи.
Content — непосредственно текст записи. Здесь экранируем все кавычки, ставим теги и т.д.
Slug — url нашей записи
Tags — тэги при необходимости (я не ставлю).
Status — публикуем сразу или пока отправляем в черновик.
Categories — числовой индификатор вашей категории. Чтобы узнать его — переходим в «Рубрики». Выбираем нужную и нажимаем «Изменить». В адресной строке вы увидите «term.php?taxonomy=category&tag_ID=3». ID — это и есть этот индификатор.
Excerpt — описание (текст в дексрипшен).
Media — картинка.
Как видите, ничего сложного нет.
3. Если используете сторонний софт, например Zennoposter, то перед отправкой запроса конвертируем логин пароль C#
string str = project.Variables[«login_pass_64»].Value;
return Convert.ToBase64String(Encoding.UTF8.GetBytes(str));
Предварительно в переменную login_pass_64 ложим наши данные a формате логин:пароль
Чтобы не грузить сервер — отправляйте 1 запись в секунду.
За час сможете опубликовать 3600 записей.
А сколько бы это заняло в ручную?)