Cum să setezi slug-ul postării când folosești wp_insert_post()?

16 aug. 2017, 16:11:23
Vizualizări: 14.3K
Voturi: 18

Tema mea folosește un șablon personalizat pentru a afișa anumite conținuturi. Pentru a utiliza acest șablon, folosesc hook-ul after_switch_theme pentru a crea propria pagină după activarea temei și apoi atribui acest șablon.

Iată cum fac acest lucru:

$new_page_title = __('Pagina personalizată');
$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' => 'slug-personalizat'
);
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);
    }
}

Totuși, slug-ul paginii urmează întotdeauna titlul. Asta înseamnă că slug-ul este întotdeauna pagina-personalizata. Se pare că wp_insert_post() nu acceptă slug-ul postării, deoarece nu există menționat în documentație.

Trebuie să setez slug-ul deoarece titlul paginii este ceva foarte comun și ar putea exista deja o altă pagină cu același slug.

Cum pot face acest lucru?

0
Toate răspunsurile la întrebare 1
1
32

Parametrul pentru a insera un slug personalizat este:

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

Nu post_slug cum ai putea crede! :)

16 aug. 2017 16:24:41
Comentarii

Rețineți că dacă există deja un articol cu același slug, funcția wp_insert_post va crea un nou articol cu un post_name generat automat

Flimm Flimm
13 iul. 2022 17:26:43