私のテーマはカスタムテンプレートを使ってコンテンツをレンダリングします。このテンプレートを使用するには、テーマがアクティブ化された後にafter_switch_theme
を使用して自分のページを作成し、それにこのテンプレートを割り当てます。
これが私のやり方です。
$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);
}
}
ただし、ページのスラッグは常にタイトルの後に続きます。つまり、スラッグは常にcustom-page
です。 wp_insert_post()
のように思えますコード参照には何もないのでpost slugをサポートしていません。
ページのタイトルは非常に人気があるのでスラッグを設定する必要があります。同じスラッグを持つ別のページが既に存在する可能性があります。
これどうやってするの?
カスタムスラッグを挿入するためのパラメータは次のとおりです。
'post_name' => 'my-custom-slug'
post_slug
ではないと思うかもしれません! :)