Zeige die Kategorie nur für bestimmte Benutzerebenen ohne Plugin an

Ich baue eine Seite für einige Armee-Leute, um Fotos zu teilen, und eine Sache hält mich immer auf Trab.

Sie haben einige Fotos, die sie alle, die für die Website angemeldet sind, möchten, und andere, die nur sie anzeigen können. Aber sie können keine Administratoren sein.

Die einzige Hilfe, die ich finden kann, besteht darin, nur bestimmten Benutzerlevels den Zugang zu einer Kategorie zu erlauben. Ich möchte “Abonnenten” grundsätzlich davon abhalten, einige Beiträge zu sehen.

Ich habe niemanden gebeten, etwas für mich zu schreiben, aber ein Punkt in die richtige Richtung wäre großartig.

Solutions Collecting From Web of "Zeige die Kategorie nur für bestimmte Benutzerebenen ohne Plugin an"

Wenn ich verstehe, haben Sie einige Kategorien, zB: ‘reserviert’, ‘Leute’, ‘Landschaften’, ‘persönlich’ und so weiter.

Jetzt möchten Sie, dass Abonnenten Beiträge sehen können, z. B. “Personen”, “Landschaften”, aber keine Beiträge in den Kategorien “reserviert” und “persönlich”.

Dies ist relativ einfach, haken pre_get_posts einfach in pre_get_posts und wenn die Anfrage für einen Beitrag mit diesen Begriffen oder dem Begriff Archiv ist, deaktivieren Sie die Anzeige.

Um sie zu deaktivieren, haben Sie verschiedene Möglichkeiten. Sie können redirect, Sie können 404 anzeigen oder Sie können eine benutzerdefinierte Vorlage anzeigen.

Darunter sage ich, wie man die letzte Option hält.

Erstellen Sie zunächst eine Vorlagendatei, z. B. not-allowed.php und legen Sie sie in Ihren not-allowed.php .

Dann benutze in der functions.php diesen Code:

 add_filter('template_include', 'restict_by_category'); function check_user() { $user = wp_get_current_user(); if ( ! $user->ID || in_array('subscriber', $user->roles) ) { // user is not logged or is a subscriber return false; } return true; } function restict_by_category( $template ) { if ( ! is_main_query() ) return $template; // only affect main query. $allow = true; $private_categories = array('reserved', 'personal'); // categories subscribers cannot see if ( is_single() ) { $cats = wp_get_object_terms( get_queried_object()->ID, 'category', array('fields' => 'slugs') ); // get the categories associated to the required post if ( array_intersect( $private_categories, $cats ) ) { // post has a reserved category, let's check user $allow = check_user(); } } elseif ( is_tax('category', $private_categories) ) { // the archive for one of private categories is required, let's check user $allow = check_user(); } // if allowed include the required template, otherwise include the 'not-allowed' one return $allow ? $template : get_template_directory() . '/not-allowed.php'; } 

Downloaden und installieren Sie das Plug-in Kategorien einschränken . Beschränke bestimmte Kategorien für bestimmte Rollen und poste die Fotos in den entsprechenden Kategorien.