wp insert post — це функція для створення публікацій, а також для їх редагування. Проте окрім очевидного застосування вона може допомагати у вирішенні численних задач: наприклад, якщо Вам потрібно зберігати кудись листи з форми зворотнього зв’язку.
Окрім того, у WordPress публікації в залежності від типу можуть виконувати як роль коментаря, так і пункту меню — тож спектр використання для функції справді чималий.
При біглому перегляді функція має ось таку структуру:
wp_insert_post( array $postarr, bool $wp_error = false )
В першому значенні подається масив функцій, який збігається з колонками таблиці публікацій, а другим параметром Ви можете включати або виключати вивід помилок.
UPD. Окрім того функція завертає ID створеного поля в базі даних. Цю інформацію Ви можете використовувати для роботи з додатковими полями, прив’язаними до Вашої публікації. Щоб зберегти ID просто використовуйте цю конструкцію
$test_id = wp_insert_post( $postarr);
Ось так виглядає допустимі значення масиву. Тут варто зауважити, що параметр [ID] використовується лише для редагування потрібної статті — власне її ідентифікатор і вказуємо. У більшості ж випадків залишаємо це значення пустим, або не вказуємо зовсім.
$postarr = array( 'ID' => [ <post id> ] //ID юзаємо лише для редагування 'menu_order' => [ <order> ] //у випадку створення сторінки — задаємо її порядок 'comment_status' => [ 'closed' | 'open' ] // відкриваємо чи закриваємо коменти 'ping_status' => [ 'closed' | 'open' ] //'closed' — відключає pingbacks чи trackbacks 'pinged' => [ ? ] // 'post_author' => [ <user ID> ] //ID автора публікації 'post_category' => [ array(<category id>, <...>) ] // я додаю ID категорій 'post_content' => [ <the text of the post> ] // повна історія 'post_date' => [ Y-m-d H:i:s ] // Дата створення 'post_date_gmt' => [ Y-m-d H:i:s ] //Дата створення посту по Гринвічу 'post_excerpt' => [ <an excerpt> ] // Для ваших цитат з публікації 'post_name' => [ <the name> ] // url (slug) публікації 'post_parent' => [ <post ID> ] // визначити матір публікації 'post_password' => [ ? ] // Пароль, якщо потрібно 'post_status' => [ 'draft' | 'publish' | 'pending'| 'future' | 'private' ] // Статус для нової публікації 'post_title' => [ <the title> ] // Назва вашої публікації 'post_type' => [ 'post' | 'page' | 'link' | 'nav_menu_item' | custom post type ] //Тип поста: стаття, сторінка, лінк, пункт меню тощо 'tags_input' => [ '<tag>, <tag>, <...>' ] //Для тегів. 'to_ping' => [ ? ] // 'tax_input' => [ array( 'taxonomy_name' => array( 'term', 'term2', 'term3' ) ) ] // підтримка користувацької таксономії );
Важливо, що функція завертає [ID] запису, якщо все гаразд і 0, у випадку стандартної помилки. Стандартної — це коли Ви залишили значення FALSE для $wp_error. Або ж видасть повідомлення $wp_error — якщо Ви його вказали.
UPD. Пам’ятаємо, що ми формуємо масив окремо і присвоюємо його якійсь змінній (наприклад $postarr), а вже опісля запускаємо функцію з цією. змінною.
UPD.2. Хоча, для оновлення я б таки юзав функцію wp_update_post().
Аналогічно можна формувати і принцип виводу публікацій на сторінку.