rss-icon mail-icon

Portfolio Christian Waldmann

Vom:
WordPress Backend Artikel-Übersicht anpassen

Blog

Mein "Kompendium" und sonstige Projekte

WordPress Backend Artikel-Übersicht anpassen

Die Artikelübersicht von WordPress ist an sich recht funktional aufgebaut. Es werden alle wichtigen Informationen, die benötigt werden, auf einen Blick angezeigt. Wenn jedoch viele Plugins installiert sind, welche zusätzliche Spalten erzeugen, kann diese Übersichtlichkeit schnell vorbei sein und der Wunsch groß, einige davon auszublenden.

Auf der anderen Seite kann es natürlich auch sein, dass euch noch Spalten fehlen. Wie schnell und einfach diese eingefügt/entfernt werden können, möchte ich mit diesem Post erläutern.

Um Anpassungen am Backend vorzunehmen,  müssen die beiden Einsprungspunkte (Hooks) manage_posts_custom_column und manage_posts_columns angesprochen werden. Dabei kann mit manage_posts_custom_column bestimmt werden, in welcher Reihenfolge Spalten angezeigt werden, ob diese überhaupt angezeigt werden sollen, oder ob eine neue Spalte hinzugefügt werden muss. Dagegen kann man mit manage_posts_columns der Inhalt der Spalte in Abhängigkeit zum Post gesteuert werden.

Registriert werden die Hooks mit folgendem Aufruf

add_action( 'manage_posts_custom_column', 'cmd_manage_posts_custom_column', 10, 2 );
add_filter( 'manage_posts_columns', 'cmd_manage_posts_columns');

Eine Spalte hinzufügen

function cmd_manage_posts_custom_column($columns) {
	$new_columns = array();
	foreach($columns as $key => $val) {
		$new_columns[$key] = $val;
		if ( $key == 'cb' )
			$new_columns['testfeld'] = 'Testfeld';
	}
	return $new_columns;
}

function cmd_manage_posts_columns($column_name, $post_id) {
	if($column_name == 'testfeld' ) {
		echo 'Das ist der Inhalt der Spalte';
	}
}

Als Ergebnis erhält man dies:

Spalten löschen

Wenn ihr beispielsweise auf die Spalte “Autor” verzichten könnt, da sowieso ihr der einzige Autor auf eurem Blog seid,  kann die Spalte mit folgenden Zeilen ausgeblendet werden:

add_filter( 'manage_posts_columns', 'cmd_manage_posts_columns');

function cmd_manage_posts_columns($columns) {
	$new_columns = array();
	foreach($columns as $key => $val) {
		if ( $key == 'author' )
			continue;
		$new_columns[$key] = $val;
	}
	return $new_columns;
}

Daneben gibt es noch folgende Standardspalten: “cb”, “title”, “author”, “categories”, “tags”, “comments”, “date”.

Und was ist mit der Page-Oberfläche?

Die Oberfläche für Pages (Seiten) kann auf eine ähnliche Weise manipuliert werden, wie die der Posts. Einziger Unterschied hier ist, dass ein anderer Filter verwendet werden muss.

add_action( 'manage_pages_custom_column', 'cmd_manage_pages_custom_column', 10, 2 );
add_filter( 'manage_pages_columns', 'cmd_manage_pages_columns');