« zurück zur Startseite.
11.Februar, 2010

Erste Eindrücke der eigenen Post-Typen

Eine der sehr interessanten neuen Punkte an WordPress 3.0 sind eigene Post-Typen, die mit wenig Aufwand implementiert sind. Musste man früher an der Datenbank erweitern und die eigene Oberfläche dafür schreiben, so geht das nun mit wenigen Zeilen Code – daher einige kleine Einblicke in den aktuellen Stand, der sich sicher noch verändern kann.

Einfachste Lösung


function post_type_movies() {
	register_post_type( 'movies', array('label' => __('Movies'), 'public' => true, 'show_ui' => true ) );
	register_taxonomy_for_object_type('post_tag', 'movies');
}
add_action('init', 'post_type_movies');

default-custom-post-type

Parameter für Meta-Boxen

Natürlich gibt es für die Funktion eine ganze Reihe von Parametern und so kann das Verhalten und das Aussehen der zugehörigen Edit-Seite recht einfach gesteuert werden, auch dazu ein kleines Beispiel mit zusätzlichen Meta-Boxen.


function post_type_movies() {
	register_post_type('movies', array('label' => __('Movies'), 'public' => true, 'show_ui' => true, 'supports' => array('post-thumbnails', 'excerpts', 'trackbacks', 'custom-fields', 'comments', 'revisions') ) );
	register_taxonomy_for_object_type('post_tag', 'movies');
}
add_action('init', 'post_type_movies');

custom-post-type

Standard-Agumente


// Args prefixed with an underscore are reserved for internal use.
$defaults = array('label' => false, 'publicly_queryable' => null, 'exclude_from_search' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'public' => false, 'rewrite' => true, 'query_var' => true, 'supports' => array(), 'register_meta_box_cb' => null, 'taxonomies' => array(), 'show_ui' => null );

Inklusive der Custom Taxonomies

Im folgenden Beispiel wird zusätzlich zu diesem Post-Type eine Taxonomie in zwei Möglichkeiten integriert; eigene Tags und Kategorien zum Post-Type Movies, also einmal als klassischen Tag, ohne Hierarchie und einmal als Kategorie, also Tag mit Hierarchien.


function post_type_movies() {
	register_post_type('movies', array('label' => __('Movies'), 'public' => true, 'show_ui' => true, 'supports' => array('post-thumbnails', 'excerpts', 'trackbacks', 'custom-fields', 'comments', 'revisions') ) );

	register_taxonomy( 'actor', 'movies', array( 'hierarchical' => true, 'label' => __('Actor') ) );
	register_taxonomy( 'production', 'movies',
		array( 'hierarchical' => false,
					 'label' => __('Production'),
					 'query_var' => 'production',
					 'rewrite' => array( 'slug' => 'production' )
				 )
	);
}
add_action('init', 'post_type_movies');

taxonomy-custom-post-type

Da ist definitiv die eine oder andere spannende Sache dabei und vielleicht kann mit den Beispielen der oder andere seine ersten Spielereien machen, bevor es im Livegeschehen ernst wird.


Frank Bültge

3 Trackbacks

  1. Wordpress dreht durch: Marketing? | Viva España am 11. Februar 2010
  2. black forever » Archiv » Eigene Post-Typen in WordPress 3.0 am 11. Februar 2010
  3. WordPress Query Quick Tipps – bueltge.de [by:ltge.de] am 30. April 2010

12 Kommentare | Kommentar schreiben

  1. #1 Markus

    Scheint mir eine echt gute Sache zu sein. Bisher ist es ja doch noch recht umständlich. Eigene Kategorie, diese ausschliesen, eigenes Template … Wir mir scheint wird das um einiges einfacher so.

  2. #2 Max

    Gute Sache

  3. #3 Meissen

    Da dürfen wir wohl sehr gespannt sein! In der Version 3.0 soll es ja viele Neuerungen geben. Hoffentlich dauert das Update von WordPress MU nicht so lang…

    Gruß

  4. #4 Martin Röder

    Ist schon abzusehen wann das WP 3.0 in etwa erscheinen wird ?

  5. #5 Frank Bültge

    @Martin: vermutlich im April

  6. #6 FuNKeR

    Oha, das ist doch, worauf ich lange gewartet bzw. wofür ich nach geeigneten Plugins gesucht habe. Hab auch einige getestet, aber so richtig das tolle war nicht dabei. Bin gspannt, wie das dann in 3.0 implementiert sein wird.

  7. #7 Paul

    Kann mir einer sagen, was das Anwendungsgebiet solcher Post-Typen ist. Kann mir nur schwer vorstellen, wofür sich das eignet. Wäre nett!

  8. #8 Michael

    Dann kann man neben Artikel auch z. B. Produkte betreiben. Dazu eignen sich dann die neu hinzukommenden Thumnails. Wäre natürlich komfortabler, wenn man ein neuen Post-Typ bzw. eine Taxonomie direkt im Admin erstellen könnte.

  9. #9 Johannes

    @Paul: Ich würde meiner Webseite dann z.B. eigene Post-Typen für Rezensionen und Kurzgeschichten spendieren. Zum einen kann ich da dann sicher einfach die Editorseite anpassen. Den Buchautor hänge ich z.B. im Moment per Benutzerdefiniertem Feld an die Rezensionen und gebe ihn so auch im entsprechenden Kategorietemplate aus. Das Setzen des Feldes vergesse ich aber oft, ist ja in der allgemeinen Dropdown-Box versteckt. Wenn ich im Moment eine eigene Box für den Buchautor auf der Editorseite einbinde, erscheint die bei allen Postings, auch bei denen, die keine Rezension darstellen. Das wäre schon mal toll, die Autor-Box nur bei den Rezensionen zu haben.

    Zum anderen wird es dann sicher einfacher, das auf der Webseite zu trennen. Ich will die Kurzgeschichten z.B. eigentlich komplett vom Rest des Blogs trennen, die sollen nicht in der gleichen Tag-Cloud erscheinen und nicht im RSS-Feed oder den zeitbasierten Archiven. Das müsste damit dann hoffentlich auch gehen. Ich habe so das Gefühl, WP 3.0 wird großartig. :-)

  10. #10 Steffen

    Ich frage mich gerade wie man das dann im Template aufruft?

    if ( have_posts('movies') ) : while ( have_posts('movies') ) : the_post('movies');

    ??

  11. #11 Frank Bültge

    @Steffen: nein, einfach den Query nutzen: query_posts('post_type=movies')

  12. #12 Yo

    Wird es dann auch möglich ohne Corehack zukünftige Posts (post=future) im Kalender darzustellen? Derzeit ist das eine Qual..



Dein Kommentar »



« zurück zur Startseite.