Wordpress - функции программного создания
Функции для создания постов/страниц и т.д. программно
Иногда нужно создать пост или страницу с помощью кода. Вот некоторые необходимы функции.
Для начала в php файл надо подключить функции Wordpress. Для каждой задачи свою.
define('WP_USE_THEMES', false);
require( $_SERVER['DOCUMENT_ROOT'] .'/wp-blog-header.php');
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
require_once( ABSPATH . 'wp-admin/includes/taxonomy.php' );- Транслитерация - получение slug
ctl_sanitize_title('Что то на нашем языке');Но не забываем, что транслитерация оставляет точки, поэтому лучше сразу делать замену точки на пусто и убрать верхний регистр.
str_replace('.', '', strtolower(ctl_sanitize_title('Текст')))- Создание страницы или поста
// Получаем список существующих страниц
$pages = get_pages();
$new_page= array(
'slug' => ctl_sanitize_title('мебель киевская область'),
'title' =>'мебель киевская область'
);
// Проверяем, нет ли уже такой страницы с нашим названием
foreach ($pages as $page) {
$apage = $page->post_name;
switch ( $apage ){
case $new_page['slug'] :
$page_found = '1';
break;
default:
$no_page;
}
}
// Создаем страницу
if($page_found != '1'){
$page_id = wp_insert_post(array(
'post_title' => $new_page['title'],
'post_type' =>'page',
'post_name' => $new_page['slug'],
'post_status' => 'publish',
'post_excerpt' => '',
'meta_input' => array('type_page'=>'1', 'region_id'=>11 )
));
add_post_meta( $page_id, '_wp_page_template', 'mytemplate.php' );
}
Список параметров, которые можно указать при создании:
$post = array(
'ID' => [ <post id> ] // Вы обновляете существующий пост?
'menu_order' => [ <order> ] // Если запись "постоянная страница", установите её порядок в меню.
'comment_status' => [ 'closed' | 'open' ] // 'closed' означает, что комментарии закрыты.
'ping_status' => [ 'closed' | 'open' ] // 'closed' означает, что пинги и уведомления выключены.
'pinged' => [ ? ] //?
'post_author' => [ <user ID> ] // ID автора записи
'post_category' => [ array(<category 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 ] // Время, когда запись была создана в GMT.
'post_excerpt' => [ <an excerpt> ] // Цитата (пояснительный текст) записи.
'post_name' => [ <the name> ] // Альтернативное название записи (slug) будет использовано в УРЛе.
'post_parent' => [ <post ID> ] // 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>, <...>' ] // Метки поста (указываем ярлыки).
'tax_input' => [ array( 'taxonomy_name' => array( 'term', 'term2', 'term3' ) ) ] // поддержка для произвольных таксономий.
'meta_input' => [ array( 'meta_key'=>'meta_value' ) ] // добавит указанные мета поля. По умолчанию: ''. с версии 4.4.
);
Comments