wp insert post

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().

Аналогічно можна формувати і принцип виводу публікацій на сторінку.

Залишити відповідь