Come impostare post slug quando si utilizza wp_insert_post () ;?


9

Il mio tema utilizza un modello personalizzato per eseguire il rendering di alcuni contenuti. Per utilizzare questo modello, mi sto agganciando after_switch_themeper creare la mia pagina dopo l'attivazione del tema, quindi assegnare questo modello ad esso.

Ecco come lo faccio:

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

Tuttavia, la lumaca della pagina segue sempre il titolo. Significa che la lumaca è sempre custom-page. Sembra wp_insert_post()che non supporti post slug, dal momento che non c'è nessuno nel riferimento al codice.

Devo impostare la lumaca poiché il titolo della pagina è molto popolare e potrebbe esserci un'altra pagina con la stessa lumaca già esistente.

Come posso fare questo?

Risposte:


11

Il parametro per inserire una lumaca personalizzata è:

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

Non post_slugcome si potrebbe pensare! :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.