回答:
カスタム投稿タイプを登録するとき、書き換えルールを既存のURL構造の前に追加しないように指定する必要があります。
要するに、これはあなたのregister_post_type
呼び出しのこの行を意味します:
'rewrite' => array('slug' => 'projects'),
これに変わります:
'rewrite' => array('slug' => 'projects','with_front' => false),
詳細についてrewrite
は、上のコーデックスエントリから引数を確認してください。register_post_type
編集:コードを更新した後、[設定]> [パーマリンク]にアクセスして、書き換えルールをフラッシュしてください。それ以外の場合は、古いリンクが引き続き表示されます。
example.com/projects/title-of-post
ます。パーマリンクのページも訪れました。これは何が原因ですか?myには書き換えルールはありませんhtaccess
。
この問題は文字通り3日前に発生し、その後wp.tutsplus.comでシリーズを見つけました。私はあなたの質問にうまく対応するために自分のコードを交換しましたが、これはシリーズを読んだ後になってしまったものです。また、これはテストされていないことに注意してください。
// sets custom post type
function my_custom_post_type() {
register_post_type('Projects', array(
'label' => 'Projects','description' => '',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => false,
'publicly_queryable' => true,
'rewrite' => false,
'query_var' => true,
'has_archive' => true,
'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'),
'taxonomies' => array('category','post_tag'),
// there are a lot more available arguments, but the above is plenty for now
));
}
add_action('init', 'my_custom_post_type');
// rewrites custom post type name
global $wp_rewrite;
$projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/';
$wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project=");
$wp_rewrite->add_permastruct('projects', $projects_structure, false);
理論的には、$projects_structure
変数に格納されているURLで必要なものは何でもスワップアウトできます。私が使用することになったものは何ですか。
頑張って、いつものように-戻って来て、それがどのように機能したかをお知らせください!:)