12.1. Benutzerdefinierten Artikeltypen erstellen

Viele Plugin-Programmierer aber auch Theme-Autoren nutzen die Möglichkeit eigene Artikeltypen mittels register_post_type() anzulegen da die Funktion ihnen sehr viel Programmieraufwand abnimmt. So erlauben sie das Anlegen, Löschen, Sortieren, Durchsuchen und vieles mehr bereits von Grund auf.

<?php
function register_post_type( $post_type, $args = array() ) {
	...
}
?>

Es gilt:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Zurückgegeben wird entweder ein WP_Error Objekt, falls ein Fehler auftrat, ansonsten ein WP_Post_Type Objekt des Artikeltyps.

WordPress rät dazu, den benutzerdefinierten Artikeltypen nach dem Action Hook admin_menu aber noch vor after_setup_theme anzulegen. Der init-Hook ist also dafür fast prädestiniert.

Ein einfaches Beispiel stammt von WordPress selbst:

<?php
add_action( 'init', 'mm_register_post_type' );

function mm_register_post_type() {

	$labels = array(
			'name'               => 'Books',
			'singular_name'      => 'Book',
			'menu_name'          => 'Books',
			'name_admin_bar'     => 'Book',
			'add_new'            => 'Add New',
			'add_new_item'       => 'Add New Book',
			'new_item'           => 'New Book',
			'edit_item'          => 'Edit Book',
			'view_item'          => 'View Book',
			'all_items'          => 'All Books',
			'search_items'       => 'Search Books',
			'parent_item_colon'  => 'Parent Books:',
			'not_found'          => 'No books found.',
			'not_found_in_trash' => 'No books found in Trash.'
	);

	$args = array(
			'labels'             => $labels,
			'public'             => true,
			'publicly_queryable' => true,
			'show_ui'            => true,
			'show_in_menu'       => true,
			'query_var'          => 'book',
			'rewrite'            => array( 'slug' => 'book' ),
			'capability_type'    => 'post',
			'has_archive'        => true,
			'hierarchical'       => false,
			'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
	);

	register_post_type( 'book', $args );

}
?>

Auf Github ansehen

Wie Sie sehen wird hier der Artikeltyp book erstellt. Dabei werden zuerst alle Bezeichnungen ($labels) festgelegt. Anschließend alle Argumente:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

  1. Das „Dashicon“-Projekt finden Sie hier: https://github.com/melchoyce/dashicons ↩︎