Добавление поста в wordpress средствами php

Эта статья будет полезна тем, кто захочет написать собственный парсер с автопостингом для WordPress. В данном материале будет рассмотрен механизм создания и публикации поста средствами php. Скрипт создаётся с целью постинга без захода в админку и без ручной работы по заполнению полей публикуемого поста поста.

Создаём в корне сайта файл auto-poster.php, при обращении к нему через браузер будет добавляться пост. Убедитесь, что он сохранён в кодировке utf-8, иначе скрипт будет работать некорректно.

Добавление основных полей поста вордпресса средствами php

Подключаем файл инициализации движка WordPress wp-load.php, используем функцию вордпресса wp_insert_post() для добавления поста. Вот что у меня получилось на начальном этапе:

Мой массив $post_data имеет минимальный набор значений. Для того, чтобы узнать о всех возможных параметрах, смотрите документацию по функции wp_insert_post().

Откройте браузер и зайдите по адресу «http://ваш_домен/auto-poster.php». Если скрипт отработал успешно — появиться цифра. Перейдите на главную страницу блога — новая запись должна появиться.

Добавление дополнительных полей в запись wordpress средствами php

Если у Вас навороченный сайт на wordpress, вряд ли Вам хватает основных полей записи блога. В ход идут Custom Fields — произвольные поля. Давайте разберёмся, как их добавлять средствами php. Предположим, что все дополнительные поля уже настроены через админку wodpress, и нам просто нужно вставить значения для этих полей в добавляемом посту.

Для этой цели мы используем метод update_post_meta().  Добавляем к существующему коду функцию, изменяющую значение произвольного поля в добавленном посте:

Добавление картинки в WordPress средствами php

Допустим нам нужно залить и прикрепить обложку к записи wordpress. Для этого нам нужно:
1) Скачать картинку по ссылке и сохранить её в папку uploads.
2) Добавить загруженный файл в медиатеку WordPress.
3) Назначить сохранённый в медиатеку элемент в качестве обложки поста.

Для этого нам понадобятся функции download_url()
и media_handle_sideload(). Добавляем в auto-poster.php следующий код:

Запускам, проверяем, радуемся. Принцип я показал. А дальше можете оформлять в виде плагина, писать парсеры с автоматическим добавлением записей в wordpress.
Исходник скрипта в моём репозитории на GitHub.




Комментарии