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?
pages
slug
wp-insert-post
Jack Johansson
quelle
quelle