web-dev-qa-db-ja.com

カスタム投稿タイプテンプレート - アーカイブ

私は 'job'というカスタム投稿タイプを持っています、そして私のテーマには以下のテンプレートがあります。

  • single-job.php(正常に動作し、期待通りに単一のジョブを表示します)

  • archives-job.php(認識されませんか?)

  • archives-current.php(これも認識されていません)

  • archives.php(どちらも認識されていませんか?)

  • index.php(アーカイブページはこのページを使用します)

私のカスタムコンテンツタイプをfunctions.phpに登録する方法は次のとおりです。

add_action( 'init', 'create_jobs' );
function create_jobs() {
  $labels = array(
    'name' => _x('Jobs', 'post type general name'),
    'singular_name' => _x('Job', 'post type singular name'),
    'add_new' => _x('Add New', 'Job'),
    'add_new_item' => __('Add New Job'),
    'edit_item' => __('Edit Job'),
    'new_item' => __('New Job'),
    'view_item' => __('View Job'),
    'search_items' => __('Search Jobs'),
    'not_found' =>  __('No Jobs found'),
    'not_found_in_trash' => __('No Jobs found in Trash'),
    'parent_item_colon' => ''
  );

  $supports = array('title', 'editor', 'custom-fields', 'revisions', 'excerpt');

  register_post_type( 'Job',
    array(
      'labels' => $labels,
      'public' => true,
      'has_archive' => 'current', 
      'supports' => $supports
    )
  );
}

私はURLに行くとき http:// mywebsite/wordpress/current/ 、それは期待どおり私の仕事のすべてを表示します - しかしそれはアーカイブテンプレートのどれも使用していない、代わりにindex.php 。

ワードプレスのドキュメントを理解したところでは、アーカイブ - (投稿タイプ名用の特別なアーカイブ).php、次にarchives-(投稿タイプ).php、そしてarchives.php、そしてindex.php ...の順に検索されます。 index.phpに直接行きますか?

私はpermalinks設定ページを訪問し、すべてを更新するためにsaveをクリックしました、それで私は404のものを得ていません、それはただ正しいテンプレートに出力していません...間違って名前を付けましたか?カスタム投稿タイプを作成したときに見逃した登録設定はありますか。

7
Sarah Jean

テストする前に'has_archive' => 'true';を試してパーマリンクをリセットしてください。そしてそれは archives - job.phpではなく単数形の archive-job.php であるべきです

9
MartinJJ