WordPress: Erstellt eng Säitschabloun déi e Benotzer erfuerdert fir registréiert an ugemellt ze sinn
Mir waren ofgeschloss fir e personaliséierten Thema op engem Client Site ëmzesetzen, a si hu gefrot datt mir eng Aart Interaktioun bauen wou e puer vun de Säiten op registréiert Abonnente limitéiert waren. WordPress bitt Visibilitéitsoptioune fir Säiten, awer dat passt net un dësem Szenario.
- private - Wielt Visibilitéit als privat erlaabt nëmmen Administrateuren an Redaktoren den Inhalt ze gesinn.
- Passwuert geschützt - erfuerdert en eenzegaartege Code fir all Säit applizéiert fir den Inhalt ze gesinn.
Am Ufank hu mir geduecht fir Drëtt Partei Plugins ëmzesetzen, awer d'Léisung war einfach. Mir kéinten eng eenzegaarteg Schabloun erstellen déi d'Zuschauer erfuerdert sech aschreiwen an aloggen fir d'Säit ze gesinn.
WordPress Schabloun: Nëmmen Abonnenten
Als éischt hu mir eis Client Säit Schabloun kopéiert (page.php
) bannent der Kand Thema. Fir eng Schabloun ze kreéieren, musst Dir e puer Code uewen op Ärer Säit addéieren:
<?php /* Template Name: Subscribers Only */ ?>
Als nächst kuckt no der Zeil am Code vun Ärer Säit déi den Inhalt affichéiert. Et sollt esou ausgesinn:
<?php the_content(); ?>
Elo musst Dir e Code ronderëm dës Linn wéckelen:
<?php
$redirect_url = get_permalink(); // Get the current page's URL
if (is_user_logged_in()) :
?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php else : ?>
<h2>Subscriber Only</h2>
<p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>
Hei ass eng Erklärung vum Code a Bullet Points:
$redirect_url = get_permalink();
: Dës Linn recuperéiert d'URL vun der aktueller Säit a späichert se an der Variabel$redirect_url
.if (is_user_logged_in()) :
: Dës bedingte Ausso kontrolléiert ob e Benotzer scho ageloggt ass.- Wann de Benotzer ageloggt ass, gëtt de Code an dësem Block ausgefouert.
<h2><?php the_title(); ?></h2>
: Dëst weist den Titel vun der aktueller Säit.<?php the_content(); ?>
: Dëst weist den Inhalt vun der aktueller Säit.
- Wann de Benotzer net ageloggt ass, de Code bannent der
else
blockéiert gëtt.<h2>Subscriber Only</h2>
: Dëst weist eng Rubrik déi ugeet datt den Inhalt limitéiert ass.<p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
: Dëst weist e Message deen erkläert datt den Inhalt op bestëmmte Rollen limitéiert ass a bitt e "Login" Link. De Link asshref
Attribut ass op d'Umeldungs-URL gesat, generéiert vunwp_login_url($redirect_url)
, garantéiert datt d'Benotzer zréck op déi aktuell Säit ëmgeleet ginn nodeems se ageloggt sinn.
Dëse Code kontrolléiert effektiv ob e Benotzer ageloggt ass an, wann net, encouragéiert se sech unzemellen fir Zougang zum limitéierten Inhalt ze kréien, mat engem Link deen se zréck op d'Säit dirigéiert déi se probéiert hunn ze gesinn.
View No spezifesch Benotzer Roll
Dir kënnt och den Inhalt op spezifesch Benotzerrollen limitéieren wann Dir wëllt:
<?php
$allowed_roles = array('subscriber', 'editor', 'author'); // Add the roles you want to allow
$user = wp_get_current_user();
$redirect_url = get_permalink();
if (array_intersect($allowed_roles, $user->roles)) :
?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php else : ?>
<h2>Restricted Access</h2>
<p>We're sorry, the content you are trying to reach is restricted to certain roles.
<a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>
Hei ass eng Erklärung vum Code a Bullet Points:
$allowed_roles = array('subscriber', 'editor', 'author');
: Dës Linn erstellt eng Rei vun erlaabte Rollen, spezifizéiert wéi eng Benotzerrollen Zougang zum Inhalt erlaabt sinn. Dir kënnt dës Array personaliséieren fir d'Rollen ze enthalen déi Dir wëllt erlaben.$user = wp_get_current_user();
: Dëse Code recuperéiert Informatiounen iwwer den aktuelle Benotzer, dorënner hir Rollen.$redirect_url = get_permalink();
: Dës Linn späichert d'URL vun der aktueller Säit an der$redirect_url
Variabel, déi benotzt gëtt fir de Benotzer zréck op déi aktuell Säit ze leeden nodeems se aloggen.if (array_intersect($allowed_roles, $user->roles)) :
: Dës bedingte Ausso kontrolléiert ob d'Rollen vum Benotzer sech mat de Rollen, déi an der$allowed_roles
Array. An anere Wierder, et kontrolléiert ob de Benotzer eng vun den erlaabten Rollen huet.- Wann de Benotzer eng vun den erlaabten Rollen huet, gëtt de Code an dësem Block ausgefouert.
<h2><?php the_title(); ?></h2>
: Dëst weist den Titel vun der aktueller Säit.<?php the_content(); ?>
: Dëst weist den Inhalt vun der aktueller Säit.
- Wann de Benotzer net ee vun de erlaabt Rollen huet, de Code bannent der
else
blockéiert gëtt.<h2>Restricted Access</h2>
: Dëst weist eng Rubrik déi ugeet datt den Inhalt limitéiert ass.<p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
: Dëst weist e Message deen erkläert datt den Inhalt op bestëmmte Rollen limitéiert ass a bitt e "Login" Link. De Link asshref
Attribut ass op d'Umeldungs-URL gesat, generéiert vunwp_login_url($redirect_url)
, garantéiert datt d'Benotzer zréck op déi aktuell Säit ëmgeleet ginn nodeems se ageloggt sinn.
Dëse Code beschränkt effektiv den Zougang zu spezifesche Rollen, a wann e Benotzer net eng vun den erlaabten Rollen huet, freet se se sech mat engem Link unzemellen, deen se zréck op déi aktuell Säit no aloggen.
Wielt Är Schabloun
Fir d'Säit ze benotzen, musst Dir d' Nëmmen Abonnenten Säit Schabloun an der fortgeschratt Sektioun vun Ärer Säit Optiounen (op der Sidebar). Dëst beschränkt d'Säit op ageloggte Lieser oder Är definéiert Roll(en).