Як у WordPress автоматично створити сторінку
Привіт:) У цьому пості покажу, як автоматично створювати сторінки на сайті WordPress. Буває потрібно, наприклад, в процесі розробки своєї теми, коли необхідно створити свій шаблон і прикріпити його до конкретної сторінки. Остання має бути вже створена та доступна в адмін-розділі Сторінки.
У наступному коді створюються 3 сторінки типу Сторінка (Page) із тайтлами "Page 1" - "Page 3" та слагами "page-1" - "page-3" відповідно.
Код потрібно вставити у файл functions.php.
/**
* Auto Create Pages
*
* https://developer.wordpress.org/reference/functions/wp_insert_post/
* https://wp-kama.ru/function/wp_insert_post
*
*/
function getPageID( $pageSlug ) {
global $wpdb;
$pageSlug = strip_tags( $pageSlug );
$pageSlug = addslashes( $pageSlug );
$pageNameId = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_name ='".$pageSlug."'" );
return $pageNameId;
}
add_action( 'init', function() {
$pageTitles = array ( 'Page 1', 'Page 2', 'Page 3' );
$pageNames = array ( 'page-1', 'page-2', 'page-3' );
for ( $i = 0; $i < count( $pageNames ); $i++ ) {
$post_data = array(
'post_title' => sanitize_text_field( $pageTitles[$i] ), // title
'post_name' => $pageNames[$i], // slug
'post_type' => 'page',
'post_status' => 'publish',
'post_author' => 1,
'comment_status' => 'closed',
);
if ( ! getPageID( $pageNames[$i] ) ) {
// If page NOT exists
$post_id = wp_insert_post( wp_slash( $post_data ) );
if ( is_wp_error( $post_id ) ){
echo $post_id->get_error_message();
} else {
//echo 'Not Errors';
// тепер можна використовувати $post_id, щоб, наприклад, додати
// довільні поля сторінки за допомогою add_post_meta() або update_post_meta()
}
} else {
// Page already exists
}
}
});