wp_insert_post();を使用するときにポストスラッグを設定する方法は?


9

私のテーマは、カスタムテンプレートを使用して一部のコンテンツをレンダリングします。このテンプレートを使用するには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()はコード参照に何もないため、ポストスラッグをサポートしていないようです。

ページのタイトルが非常に人気があるため、スラッグを設定する必要があります。また、同じスラッグが既に存在する別のページがある可能性があります。

これどうやってするの?

回答:


11

カスタムスラグを挿入するパラメーターは次のとおりです。

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

ないpost_slug1は思うだろうとして!:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.