Как установить post slug при использовании wp insert post();?


Моя тема использует пользовательский шаблон для отображения некоторого содержимого. Чтобы использовать этот шаблон, я подключаюсь к after_switch_theme, чтобы создать свою собственную страницу после активации темы, а затем назначить ей этот шаблон.

Вот как я это делаю:

$new_page_title = __('Custom page');
$new_page_content = '';
$new_page_template = 'page-custom.php';
$page_check = get_page_by_title($new_page_title);
$new_page = array(
        'post_type' => 'page',
        'post_title' => $new_page_title,
        'post_content' => $new_page_content,
        'post_status' => 'publish',
        'post_author' => 1,
        'post_slug' => 'my-custom-slug'
);
if( !isset($page_check->ID) ){
    $new_page_id = wp_insert_post($new_page);
    if(!empty($new_page_template)){
        update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
    }
}

Однако пуля страницы всегда следует за заголовком. Это означает, что слизняк всегда custom-page. Похоже, что wp_insert_post() не поддерживает post slug, так как в ссылке на код его нет.

Мне нужно установить слизняк, так как заголовок страницы является чем-то очень популярным, и, возможно, уже существует другая страница с таким же слизняком.

Как я могу это сделать?

Author: Jack Johansson, 2017-08-16

1 answers

Параметр для вставки пользовательского слизняка:

'post_name' => 'my-custom-slug'

Не post_slug, как можно было бы подумать!:)

 17
Author: mayersdesign, 2017-08-16 13:24:41