Функция get_default_post_to_edit()
в WordPress предназначена для получения стандартных данных поста, которые используются при заполнении формы «Написать пост» в административной панели. Эта функция помогает разработчикам создать предустановленные значения для новых записей, что упрощает процесс их добавления.
get_default_post_to_edit( string $post_type = 'post', bool $create_in_db = false ): WP_Post
Параметры
- $post_type:
string
(необязательный) — строка типа поста. По умолчанию ‘post’. - $create_in_db:
bool
(необязательный) — определяет, нужно ли вставлять пост в базу данных. По умолчанию:false
.
Возвращаемое значение
Функция возвращает объект WP_Post
, который содержит все стандартные данные записи в виде атрибутов.
Важно!
Когда вы добавляете новый пост через административный интерфейс, эта функция создает запись со статусом draft
и заполняет стандартные поля. Если create_in_db
установлен в true
, то пост также будет добавлен в базу данных.
Следует учитывать, что некоторые поля поста могут быть заполнены значениями из массива $_REQUEST
, что может не всегда соответствовать вашим ожиданиям. Кроме того, возвращаемый пост будет содержать значение post_category
, даже если тип поста не использует таксономию категорий.
Пример 1: Получение стандартных данных для нового поста
В этом примере мы получим стандартные данные для нового поста и выведем их на экран.
require_once ABSPATH . 'wp-admin/includes/post.php';
$default_post_data = get_default_post_to_edit('post', false);
print_r($default_post_data);
/*
WP_Post Object
(
[ID] => 0
[post_author] =>
[post_date] =>
[post_date_gmt] =>
[post_content] =>
[post_title] =>
[post_excerpt] =>
[post_status] => draft
[comment_status] => open
[ping_status] => open
[post_password] =>
[post_name] =>
[to_ping] =>
[pinged] =>
[post_modified] => 0000-00-00 00:00:00
[post_modified_gmt] => 0000-00-00 00:00:00
[post_content_filtered] =>
[post_parent] => 0
[guid] =>
[menu_order] => 0
[post_type] => post
[post_mime_type] =>
[comment_count] => 0
[filter] =>
[post_pingback] =>
[post_category] => 1
[page_template] => default
)
*/
Пример 2: Создание стандартного поста произвольного типа
Если вам нужно получить данные для нового произвольного типа поста, например, product
, используйте следующий код:
require_once ABSPATH . 'wp-admin/includes/post.php';
$default_product_data = get_default_post_to_edit('product', false);
print_r($default_product_data);
/*
WP_Post Object
(
[ID] => 0
[post_author] =>
[post_date] =>
[post_date_gmt] =>
[post_content] =>
[post_title] =>
[post_excerpt] =>
[post_status] => draft
[comment_status] => open
[ping_status] => open
[post_password] =>
[post_name] =>
[to_ping] =>
[pinged] =>
[post_modified] => 0000-00-00 00:00:00
[post_modified_gmt] => 0000-00-00 00:00:00
[post_content_filtered] =>
[post_parent] => 0
[guid] =>
[menu_order] => 0
[post_type] => product
[post_mime_type] =>
[comment_count] => 0
[filter] =>
[post_pingback] =>
[post_category] => 1
[page_template] => default
)
*/
Пример 3: Вставка поста в базу данных
Если вы хотите не только получить стандартные данные, но и сразу добавить новый пост в базу данных, установите параметр $create_in_db
в true
.
require_once ABSPATH . 'wp-admin/includes/post.php';
$new_post_data = get_default_post_to_edit('post', true);
// Вставка поста в базу данных
$post_id = wp_insert_post($new_post_data);
if ($post_id) {
echo "Пост успешно добавлен с ID: " . $post_id;
} else {
echo "Не удалось добавить пост.";
}
Заключение
Функция get_default_post_to_edit()
является мощным инструментом для разработчиков, позволяя легко создавать новые посты с предустановленными данными. Убедитесь, что вы учли все нюансы ее работы, чтобы избежать неожиданных результатов при использовании.