Eine bestimmte Kategorien verstecken in WordPress Blog genau mit diese Aufgabe habe ich mich beschäftigt. Es gibt auch ein paar WordPress Plugins so wie Ultimate Category Excluder oder Advanced Category Exclude, aber ich wollte keine zusätzliche Plugins installieren, mehr Plugins bedeutet mehr ressourcen, ich wollte einfachste weg für diese Aufgabe.
Also ein eigenes ID= Filter einbauen für eine oder mehrere Kategorien und zwar mit hilfe vom functions.php, um eine Kategorie zumbeispiel Russische Community von Hauptseite zuverstecken,es wird weiter im Kategorien sichtbar jedoch nicht mehr das Artikel auf Hauptseite so wie auf /page/2, /page/3 usw..

WordPress-Tipps und Tricks

Dafür in functions.php folgende code einfühgen:

function removeFromHome($query) {
if ($query->is_home) 
	{$query->set('cat','-13788');}
return $query; }
add_filter('pre_get_posts','removeFromHome');

{$query->set('cat','-13788');}-gewünschte Kategorie ID=

Für mehrere Kategorien verstecken gewünschte Kategorie ID= mit koma trennen

{$query->set('cat','-1,-3,-7,-88');}

Wenn man aber möchte das Artikel nur auf Hauptseite versteckt bleibt,jedoch auf /page/2, /page/3 usw zusehen ist,
In functions.php folgende code einfühgen:

function removeFromHome($query) {
if ($query->is_home && !(is_paged())) 
	{$query->set('cat','-13788');}
return $query; }
add_filter('pre_get_posts','removeFromHome');

Für das Artikel aus RSS In functions.php folgende code einfühgen:

function removeFromFeed($query) {
if ($query->is_feed)
	{$query->set('cat','-5');}
return $query; }
add_filter('pre_get_posts','removeFromFeed');

von RSS und Hauptseite In functions.php folgende code einfühgen:

function removeCat($query) {
if ($query->is_feed || ($query->is_home && !(is_paged()))) 
	{$query->set('cat','-5,-34');}
return $query; }
add_filter('pre_get_posts','removeCat');

Das ist einfachste Metoden ohne Plugins Kategorie(en) verstecken.Kennt Ihr eine andere Funktion?

Eine weitere Lösung dafür dass die Beiträge auch nicht im RSS-Feed erscheinen.
In functions.php folgende code einfühgen:
1.) Kategorie ausschließen


function myFeedExcluder($query) {
 if ($query->is_feed) {
   $query->set('cat','-5165');
 }
return $query;
}

2.) Kategorie aus den RSS-Feeds ausschließen


function filter_posts() {
global $wp_query;
if(is_home()) {
$wp_query->set('category__not_in',array(5165)); // ID der Kategorie
}
}

Die Ziffer 5165 steht hier für die WordPress-Kategorie, um die es im Beispiel geht. Sie muss durch die in eurem Blog vorkommende ersetzt werden.

Wenn warum auch immer diese funktionen nicht funktionieren, probiere folgende Code

function exclude_category_home( $query ) {
    if ( $query->is_home ) {
        $query->set( 'cat', '-5, -34' );
    }
    return $query;
}
 
add_filter( 'pre_get_posts', 'exclude_category_home' );

In Zeile 3 fügst Du die ID’s der Kategorien ein, die Du von der Startseite ausschließen möchtest.

Nur bestimmte Kategorien auf der WordPress-Startseite anzeigen

function my_home_category( $query ) {
 if ( $query->is_home() && $query->is_main_query() ) {
 $query->set( 'cat', '1');
 }
}
add_action( 'pre_get_posts', 'my_home_category' );