Wie setze ich einen Post Slug, wenn ich wp_insert_post () verwende?


9

Mein Thema verwendet eine benutzerdefinierte Vorlage, um einige Inhalte zu rendern. Um diese Vorlage zu verwenden after_switch_theme, erstelle ich meine eigene Seite, nachdem das Thema aktiviert wurde, und ordne diese Vorlage dieser 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. Es bedeutet, die Schnecke ist immer custom-page. Scheint, als würde wp_insert_post()Post Slug nicht unterstützt, da die Code-Referenz keine enthält.

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?

Antworten:


11

Der Parameter zum Einfügen eines benutzerdefinierten Slugs lautet:

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

Nicht so, post_slugwie man denken würde! :) :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.