Custom Post Type Archives

 


honsey
Gast

14.10.11
17:54 Uhr
Ich frickel gerade an einer Art Katalog in Wordpress. In diesem Katalog gibt es „Objekte“. Dafür habe ich einen eigenen Posttype „Objekt“ angelegt.

  1. add_action( 'init', 'create_my_post_types' );
  2.  
  3. function create_my_post_types() {
  4. register_post_type( 'object',
  5. array(
  6. 'labels' => array(
  7. 'name' => __( 'Objects' ),
  8. 'singular_name' => __( 'Object' )
  9. ),
  10. 'public' => true,
  11. 'rewrite' => array('slug' => 'objects')
  12. )
  13. );
  14. }
Quelltext in Zwischenablage kopieren

Klappt soweit: einzelne Objekte können über domain.de/objects/mein-objekt aufgerufen werden. Jetzt hätte ich gerne eine Archive-Seite unter: domain.de/objects/

Irgendwie klappt das nicht. Bekomme nur die 404 Seite, obwohl archive.php und archive-object.php im theme verzeichnis existieren.

planlos
Link zu diesem Beitrag in die Zwischenablage kopieren
Mister Ad
Werbung
Schon mal bei Zalando, Amazon oder eBay geguckt? Vielleicht wirst du dort fündig.

 
caZpa
Veteran

14.10.11
18:22 Uhr
So wie du es jetzt hast, enspricht es den Wordpress Pages, die haben auch keine Archive.
Du musst erst noch eine Taxonomie (Kategoriesierung) erzeugen mit register_taxonomy.

  1. register_taxonomy(
  2. 'object_category',
  3. 'object',
  4. array(
  5. 'hierarchical' => true,
  6. 'labels' => array(
  7. 'name' => _x( 'Categories', 'taxonomy general name', THEME_LANG ),
  8. /* usw usf */
  9. )
  10. ) );
Quelltext in Zwischenablage kopieren

In der function register_post_type diese dann hinzufügen

  1. 'taxonomies' => array('object_category'),
Quelltext in Zwischenablage kopieren

Das Archiv kannst du dann mit dem Templatenamen taxonomy-object_category.php erzeugen.

// hier mal mein post type fürs Portfolio:

  1. add_action( 'init', 'create_post_type' );
  2. function create_post_type() {
  3. global $theme_path;
  4. register_taxonomy(
  5. 'portfolio_category',
  6. 'portfolio',
  7. array(
  8. 'hierarchical' => true,
  9. 'labels' => array(
  10. 'name' => _x( 'Categories', 'taxonomy general name', UT_THEME_NAME ),
  11. 'singular_name' => _x( 'Category', 'taxonomy singular name', UT_THEME_NAME ),
  12. 'search_items' => __( 'Search Categories', UT_THEME_NAME ),
  13. 'all_items' => __( 'All Categories', UT_THEME_NAME ),
  14. 'parent_item' => __( 'Parent Category', UT_THEME_NAME ),
  15. 'parent_item_colon' => __( 'Parent Category:', UT_THEME_NAME ),
  16. 'edit_item' => __( 'Edit Category', UT_THEME_NAME ),
  17. 'update_item' => __( 'Update Category', UT_THEME_NAME ),
  18. 'add_new_item' => __( 'Add New Category', UT_THEME_NAME ),
  19. 'new_item_name' => __( 'New Category Name', UT_THEME_NAME ),
  20. 'menu_name' => __( 'Categories', UT_THEME_NAME )
  21. ),
  22. 'show_ui' => true,
  23. 'show_in_menu' => true,
  24. 'query_var' => true,
  25. 'rewrite' => array( 'slug' => 'works' ),
  26. 'show_in_nav_menus' => true
  27. ) );
  28. register_post_type( 'portfolio',
  29. array(
  30. 'labels' => array(
  31. 'name' => __( 'Portfolio', UT_THEME_NAME ),
  32. 'singular_name' => __( 'Work', UT_THEME_NAME ),
  33. 'add_new' => __( 'Add New', UT_THEME_NAME ),
  34. 'add_new_item' => __( 'Add New Work', UT_THEME_NAME ),
  35. 'edit' => __( 'Edit', UT_THEME_NAME ),
  36. 'edit_item' => __( 'Edit Work', UT_THEME_NAME ),
  37. 'new_item' => __( 'New Work', UT_THEME_NAME ),
  38. 'view' => __( 'View Work', UT_THEME_NAME ),
  39. 'view_item' => __( 'View Work', UT_THEME_NAME ),
  40. 'search_items' => __( 'Search Portfolio', UT_THEME_NAME ),
  41. 'not_found' => __( 'No Works found', UT_THEME_NAME ),
  42. 'not_found_in_trash' => __( 'No Works found in Trash', UT_THEME_NAME ),
  43. 'parent' => __( 'Parent Work', UT_THEME_NAME )
  44. ),
  45. 'public' => true,
  46. 'menu_position' => 9,
  47. 'menu_icon' => $theme_path . '/img/portfolio.png',
  48. 'hierarchical' => true,
  49. '_builtin' => false,
  50. 'capability_type' => 'post',
  51. 'taxonomies' => array('portfolio_category'),
  52. 'supports' => array( 'title', 'editor', 'thumbnail', 'revisions' ),
  53. 'rewrite' => array('slug' => 'portfolio', 'with_front' => false),
  54. 'show_in_nav_menus' => true
  55. )
  56. );
  57.  
  58. }
Quelltext in Zwischenablage kopieren
Link zu diesem Beitrag in die Zwischenablage kopieren
honsey
Gast

14.10.11
19:38 Uhr
super – vielen dank!
Link zu diesem Beitrag in die Zwischenablage kopieren
 
#