web-dev-qa-db-ja.com

デフォルトの投稿タイプを書き換える

他の投稿タイプのURLには影響を与えずに、デフォルトの投稿タイプのURLを/blog/2016/11/my-post-name/に書き換えます。私は試した:

add_action('admin_menu','remove_default_post_type');
function remove_default_post_type() {
    remove_menu_page('edit.php');
}

add_action( 'init', 'set_default_post_type', 1 );

function set_default_post_type() {
register_post_type( 
    'post',
        array(
        'labels' => array(
            'name_admin_bar' => _x( 'Post', 'add new on admin bar' ),
        ),
        'public' => true,
        '_builtin' => false,
        '_edit_link' => 'post.php?post=%d',
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => array(
            'slug' => 'blog/%year%/%monthnum%/%postname%/',
            'with_front'=> false,
        ),
        'query_var' => false,
        'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
    ) 
 );
}

しかし、成功しませんでした。 URLは/blog/my-postのままです。 /blog/2016/11/my-post-name/のようなデフォルトの投稿タイプのパーマリンクを持つ1つの方法はありますか(2016は投稿の年で11は投稿の月です)他の投稿タイプのURLに影響を与えずに?

3
WpDev

パーマリンク構造をSettings > Permalinksに設定するには、admin /blog/%year%/%monthnum%/%postname%/ページのフィールドを使用してください。

カスタム投稿タイプが投稿パーマリンク構造を継承しないようにするには、すべてのカスタム投稿タイプのwith_front引数でregister_post_typefalseに設定します。

バージョン4.4では register_post_type_args フィルタも追加され、変更することができないコードによって登録された型のpost型引数を変更できるようになりました。

2
Milo

あなたはCustom Permalink plugin https://ru.wordpress.org/plugins/custom-permalinks/ を使用することができます

しかし、それはパーマリンク "テンプレート"を使用することはできません。あなたは編集ページの各投稿のためにあなたのカスタムパーマリンクを入力する必要があるでしょう。

0
Demyd Ganenko