Kategorien
Privat

Eine bestimmte Kategorie eines Artikels nicht anzeigen bzw. diese automatisch setzen

Bestimmt gibt es andere Lösungen für die kleine in der Folge von mir beschriebenen Aufgaben. Aber Plugins wollte ich dafür (wieder mal) nicht einsetzen. 🙂 Manche werden das verstehen.

Das schöne Theme „Point„, das du bei MyThemeShop.com kostenlos downloaden kannst und das ich in meinem neuen Watschblog einsetze 🙂 , ermöglichst – wie viele andere Themes ebenfalls, in Abhängigkeit von der Kategorie einzelne Artikel besonders herauszustellen (Feature). Dazu müsste ich ab jetzt immer daran denken, neben der eigentlichen Kategorie noch einen zweiten Klick zu machen, um die Kategorie auszuwählen.

Für den Augenblick habe ich mich nämlich dazu entschieden, jeden neuen Artikel mit den entsprechenden Funktionen zu versehen. Da wären zwei Dinge nützlich: 1.) möchte ich die Kategorie, die nur diesen Zweck erfüllt, im Meta-Bereich der Artikel nicht sehen. Sie soll gar nicht erscheinen und 2.) will ich, dass diese Kategorie beim Speichern automatisch ausgewählt wird.

In beiden Fällen wurde ich fündig. Auf der Website Kellerclub.eu fand ich den Code zur Realisierung von 1.) und die Lösung für den zweiten Teil fand ich hier.

1.) Kategorie nicht anzeigen

    function the_category_filter($thelist,$separator=' ') {
	if(!defined('WP_ADMIN')) {
		//Category IDs to exclude
		$exclude = array(17);
 
		$exclude2 = array();
		foreach($exclude as $c) {
			$exclude2[] = get_cat_name($c);
		}
 
		$cats = explode($separator,$thelist);
		$newlist = array();
		foreach($cats as $cat) {
			$catname = trim(strip_tags($cat));
			if(!in_array($catname,$exclude2))
				$newlist[] = $cat;
		}
		return implode($separator,$newlist);
	} else {
		return $thelist;
	}
}
add_filter('the_category','the_category_filter', 10, 2);

2.) Kategorie „_Featured“ automatisch auswählen

   add_action( 'wp_insert_post', 'update_post_terms' );

function update_post_terms( $post_id ) {
    if ( $parent = wp_is_post_revision( $post_id ) )
        $post_id = $parent;
    $post = get_post( $post_id );
    if ( $post->post_type != 'post' )
        return;

    // add a tag
    wp_set_post_terms( $post_id, 'new tag', 'post_tag', true );

    // add a category
    $categories = wp_get_post_categories( $post_id );
    $newcat    = get_term_by( 'name', 'Some Category', 'category' );
    array_push( $categories, $newcat->term_id );
    wp_set_post_categories( $post_id, $categories );
}

Beides habe ich in eine Modul – Datei hineingepackt und sie unter Toolbox aktiviert. So sieht das Modul komplett aus:

   

< ?php
/*
Module Name: Kategorie Featured ausschliessen
Description: Kategorie Featured ausschliessen [Back- and Frontend]
Author: Snipped
Author URI: https://2bier.de
*/


/* Sicherheitsabfrage */
if ( !class_exists('Toolbox') ) {
	die();
}


function the_category_filter($thelist,$separator=' ') {
	if(!defined('WP_ADMIN')) {
		//Category IDs to exclude
		$exclude = array(16);
 
		$exclude2 = array();
		foreach($exclude as $c) {
			$exclude2[] = get_cat_name($c);
		}
 
		$cats = explode($separator,$thelist);
		$newlist = array();
		foreach($cats as $cat) {
			$catname = trim(strip_tags($cat));
			if(!in_array($catname,$exclude2))
				$newlist[] = $cat;
		}
		return implode($separator,$newlist);
	} else {
		return $thelist;
	}
}
add_filter('the_category','the_category_filter', 10, 2);


add_action( 'wp_insert_post', 'update_post_terms' );
function update_post_terms( $post_id ) {
    if ( $parent = wp_is_post_revision( $post_id ) )
        $post_id = $parent;
    $post = get_post( $post_id );
    if ( $post->post_type != 'post' )
        return;
    // add a category
    $categories = wp_get_post_categories( $post_id );
    $newcat    = get_term_by( 'name', '_Featured', 'category' );
    array_push( $categories, $newcat->term_id );
    wp_set_post_categories( $post_id, $categories );
}

Den Unterstrich bei der im Watschblog eingesetzten Kategorie „_Featured“ habe ich deshalb gewählt, damit in den Bildbeschreibungen (Wp-Caption) des Themes nur die erste gewählte Kategorie angezeigt wird. Durch den Unterstrich rutscht sie im Rang nach hinten. Das Leben kann so einfach sein. 🙂

Von Horst Schulte

Mein Bloggerleben reicht bis ins Jahr 2004 zurück. Damals habe ich dieses schöne Hobby für mich entdeckt. Ich bin jetzt 65 Jahre alt und lebe seit meiner Geburt in der schönen Stadt Bedburg, nicht weit von Köln entfernt. Das mit dem Schreiben ist zwar weniger geworden. Aber ab und zu schreibe ich hier und anderswo. Die sozialen Netzwerke haben die Welt verändert - nicht zum Guten!

Über mich

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Es werden keine IP-Adressen gespeichert! Sie können, falls Sie dies möchten, auch anonym kommentieren.