Categorie uitsluiten – FrontEnd en BackEnd

Alle content op 1 plek is het doel van dit blog. Ook mijn ToDo-lijst, maar daar hoeft niet iedere bezoeker zicht op te hebben. Dus de posts en links moeten gefilterd worden. Nu kun je dit in het template oplossen, maar dan ziet een eventuele 2e auteur deze posts wel in de backend. Eigenlijk wil je de posts al gefilterd hebben voordat ze naar de loop gebracht worden. Hiervoor is de hook “pre_get_posts”. Even de WP_Query aanpassen door de categorie uit te sluiten en gaan. Niet dus. Op de Codex staat goed beschreven hoe de query aan te passen:

$query->set ( 'category_name', 'news' );

En het is ook bekend dat een min-teken voor de waarde deze juist uitsluit, maar dat werkte dus niet. Dit blijkt alleen te werken met IDs. De volgende code werkt wel:

//Filter content by role and category
hohj_privatecatfilter ($query) {
if ( is_super_admin() ) {
return $query;}
else {
$query->set ( 'cat', '-12');
return $query;}
}

add_filter('pre_get_posts', 'hohj_privatecatfilter');

Nu kunnen we beginnen met het toevoegen van een ToDo-list.

PS. Een handig plugin om de query_vars live te onderzoeken is WP Devel. Deze plugin voegt een debug bar toe aan je adminbar waarmee je veel zinnige informatie kan bekijken.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>