カスタム投稿タイプUIを使用してカスタム投稿タイプを登録し、アーカイブページを作成してarchive-recipe.phpという名前を付けました。 'recipe'はカスタム投稿タイプ名です。しかし動作していません、代わりにデフォルトのarchive.php
を使用します。 has-archive
をtrue
に設定しましたが、まだ動作しません。それを修正するには?
これがコードです:
register_post_type(
'recipe', array(
'label' => 'Recipe',
'description' => 'This is a Recipe Custom Post Type',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => true,
'rewrite' => array('slug' => ''),
'query_var' => true,
'has_archive' => true,
'exclude_from_search' => false,
'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes',),
'labels' => array (
'name' => 'Recipe',
'singular_name' => 'Recipe',
'menu_name' => 'Recipe',
'add_new' => 'Add Recipe',
'add_new_item' => 'Add New Recipe',
'edit' => 'Edit',
'edit_item' => 'Edit Recipe',
'new_item' => 'New Recipe',
'view' => 'View Recipe',
'view_item' => 'View Recipe',
'search_items' => 'Search Recipe',
'not_found' => 'No Recipe Found',
'not_found_in_trash' => 'No Recipe Found in Trash',
'parent' => 'Parent Recipe',
),
)
);
標準登録を考えると、次のものが必要です。
archive-recipe.php
single-recipe.php
しかし、私はあなたの登録コードでこれを見ます:
'rewrite' => array('slug' => ''),
これはあなたがやろうとしていることがレシピURLから 'recipe'プレフィックスを削除することであることを示唆しています。これの結果はあなたのレシピ投稿アーカイブが今であるということです:
site URL + ''
これはすでにホームページで使用されているので、あなたの投稿アーカイブはアクセスできない。
これに加えて、それはあなたがそれがすると思うことを実際には行いません。 register_post_type書き換えパラメータを単独で使用して、カスタム投稿タイプを変更してそのURLに '/ recipe /'部分を含めないようにすることはできません。あなたは他の変更を加える必要があります、そしてそれはまた潜在的にサイト破壊のバグを導入します。
たとえば、 'pumpkin'というページと 'pumpkin'というレシピがある場合、WordPressはexample.com/pumpkinにアクセスしたときにどれをロードすればよいかを知ることができますか?そうではないので、最初に見つかった書き換え規則のどちらにでも行きます。
あなたがパイのレシピを持っていても、パイと呼ばれるページがなく、それがそのページを探しても見つからない場合は、レシピを受け取ってはいけません、あなたは404を得ます。
だから私はあなたがあなたの試みを放棄することを強く勧めます。それはあなたのURLが意味をなさないようにします、そしてナンセンスなSEO「専門家」が言うにもかかわらず、それが全くしないなら(あなたを助けるために絶対に何もしない)あなたの検索エンジンのランキングを助けないことは害があるようです。
そのため、rewriteパラメータを削除して、パーマリンクを再保存してください。
このリンクを投稿した後:
http://seemynewwebsite.com/g2bm/recipecategory/appetizers/ /
分類法をロードし、投稿タイプのアーカイブを期待していることは明らかです。ここでわかるように、分類は投稿タイプではありません。これらは同じフォールバックを共有していません。
さらにそれが彼らがするのは意味がありません。たとえば、次のシナリオではどの投稿タイプのアーカイブテンプレートを使用するのか。
代わりに、ポストタイプアーカイブテンプレートではなく、分類法に分類法テンプレートを使用してください。この場合taxonomy-recipecategry.php