it-swarm.com.de

Wie setze ich post slug, wenn ich wp_insert_post () verwende?

Mein Design verwendet eine benutzerdefinierte Vorlage, um einige Inhalte zu rendern. Um diese Vorlage zu verwenden, rufe ich after_switch_theme auf, um meine eigene Seite zu erstellen, nachdem das Design aktiviert wurde, und ordne sie dieser Vorlage zu.

So mache ich es:

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

Der Slug der Seite folgt jedoch immer dem Titel. Das heißt, der Slug ist immer custom-page. Scheint so, als ob wp_insert_post() post slug nicht unterstützt, da es in der Code-Referenz keine gibt.

Ich muss den Slug setzen, da der Titel der Seite sehr beliebt ist und möglicherweise bereits eine andere Seite mit demselben Slug vorhanden ist.

Wie kann ich das machen?

6
Jack Johansson

Der Parameter zum Einfügen eines benutzerdefinierten Slugs lautet:

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

Nicht post_slug wie man denkt! :)

9
mayersdesign