Comment définir le post-slug lors de l'utilisation de wp_insert_post () ;?

9

Mon thème utilise un modèle personnalisé pour rendre certains contenus. Pour utiliser ce modèle, je me connecte after_switch_themepour créer ma propre page après l'activation du thème, puis je lui assigne ce modèle.

Voici comment je le fais:

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

Cependant, le slug de la page suit toujours le titre. Cela signifie que la limace est toujours custom-page. Il semble que wp_insert_post()ne supporte pas le post slug, car il n'y en a pas dans la référence du code.

Je dois définir le slug car le titre de la page est quelque chose de très populaire, et il pourrait y avoir une autre page avec le même slug déjà existant.

Comment puis-je faire ceci?

Jack Johansson
la source

Réponses:

11

Le paramètre pour insérer un slug personnalisé est:

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

Pas post_slugcomme on pourrait le penser! :)

mayersdesign
la source