¿Cómo configurar la barra de publicación cuando se usa wp_insert_post ();

4

Mi tema usa una plantilla personalizada para representar algunos contenidos. Para usar esta plantilla, me engancho a after_switch_theme para crear mi propia página después de que se active el tema y luego le asigno esta plantilla.

Así es como lo hago:

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

Sin embargo, la bala de la página siempre está siguiendo el título. Significa que la babosa siempre es custom-page . Parece que wp_insert_post() no admite post slug, ya que no hay ninguna en la referencia del código.

Necesito establecer el slug ya que el título de la página es algo muy popular, y podría haber otra página con el mismo slug ya existente.

¿Cómo puedo hacer esto?

    
pregunta Jack Johansson 16.08.2017 - 15:11

1 respuesta

4

El parámetro para insertar un slug personalizado es:

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

¡No post_slug como uno pensaría! :)

    
respondido por el mayersdesign 16.08.2017 - 15:24

Lea otras preguntas en las etiquetas