Como configurar o post slug ao usar o wp_insert_post () ;?

4

Meu tema usa um modelo personalizado para renderizar algum conteúdo. Para usar esse modelo, estou conectando em after_switch_theme para criar minha própria página depois que o tema é ativado e, em seguida, atribuo esse modelo a ele.

É assim que eu faço:

$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);
    }
}

No entanto, o slug da página está sempre seguindo o título. Isso significa que o slug é sempre custom-page . Parece que o wp_insert_post() não suporta post slug, já que não há nenhum no código de referência.

Eu preciso definir o slug, pois o título da página é algo muito popular, e pode haver outra página com o mesmo slug já existente.

Como posso fazer isso?

    
por Jack Johansson 16.08.2017 / 15:11

1 resposta

4

O parâmetro para inserir um slug personalizado é:

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

Não é post_slug como se poderia pensar! :)

    
por mayersdesign 16.08.2017 / 15:24