Content Marketing

WordPress: Opret en sideskabelon, der kræver, at en bruger er registreret og logget ind

Vi var ved at færdiggøre implementeringen af ​​et tilpasset tema på et kundewebsted, og de anmodede om, at vi opbyggede en form for interaktion, hvor nogle af siderne var begrænset til registrerede abonnenter. WordPress tilbyder muligheder for synlighed for sider, men det imødekommer ikke dette scenario.

  • Privat – Valg af synlighed som privat giver kun administratorer og redaktører mulighed for at se indholdet.
  • Adgangskodebeskyttet – kræver, at der anvendes en unik kode for hver side for at se indholdet.

Først tænkte vi på at implementere tredjeparts plugins, men løsningen var enkel. Vi kunne oprette en unik skabelon, der kræver, at seerne registrerer sig og logger ind for at se siden.

WordPress-skabelon: Kun abonnenter

Først kopierede vi vores kundes sideskabelon (page.php) indenfor barn tema. For at oprette en skabelon skal du tilføje noget kode øverst på din side:

<?php /* Template Name: Subscribers Only */ ?>

Kig derefter efter linjen i din sides kode, der viser indholdet. Det skal se sådan ud:

<?php the_content(); ?>

Nu skal du pakke nogle koder rundt om den linje:

<?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; ?>

Her er en forklaring af koden i punktopstillinger:

  • $redirect_url = get_permalink();: Denne linje henter URL'en på den aktuelle side og gemmer den i variablen $redirect_url.
  • if (is_user_logged_in()) :: Denne betingede erklæring kontrollerer, om en bruger allerede er logget ind.
  • Hvis brugeren er logget ind, udføres koden i denne blok.
    • <h2><?php the_title(); ?></h2>: Dette viser titlen på den aktuelle side.
    • <?php the_content(); ?>: Dette viser indholdet af den aktuelle side.
  • Hvis brugeren ikke er logget ind, vil koden inden for else blok udføres.
    • <h2>Subscriber Only</h2>: Dette viser en overskrift, der angiver, at indholdet er begrænset.
    • <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>: Dette viser en meddelelse, der forklarer, at indholdet er begrænset til bestemte roller og giver et "Log ind"-link. Linkets href attribut er indstillet til den login-URL, der genereres af wp_login_url($redirect_url), hvilket sikrer, at brugere omdirigeres tilbage til den aktuelle side efter at have logget ind.

Denne kode kontrollerer effektivt, om en bruger er logget ind, og hvis ikke, opfordrer den dem til at logge ind for at få adgang til det begrænsede indhold med et link, der leder dem tilbage til den side, de forsøgte at se.

Vis efter specifik brugerrolle

Du kan også begrænse indholdet til specifikke brugerroller, hvis du ønsker:

<?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; ?>

Her er en forklaring af koden i punktopstillinger:

  • $allowed_roles = array('subscriber', 'editor', 'author');: Denne linje opretter en række tilladte roller, der angiver, hvilke brugerroller der har tilladelse til at få adgang til indholdet. Du kan tilpasse dette array til at inkludere de roller, du vil tillade.
  • $user = wp_get_current_user();: Denne kode henter information om den aktuelle bruger, inklusive deres roller.
  • $redirect_url = get_permalink();: Denne linje gemmer den aktuelle sides URL i $redirect_url variabel, som vil blive brugt til at omdirigere brugeren tilbage til den aktuelle side, efter at vedkommende har logget ind.
  • if (array_intersect($allowed_roles, $user->roles)) :: Denne betingede erklæring kontrollerer, om brugerens roller krydser de roller, der er angivet i $allowed_roles array. Med andre ord tjekker den, om brugeren har en af ​​de tilladte roller.
  • Hvis brugeren har en af ​​de tilladte roller, udføres koden i denne blok.
    • <h2><?php the_title(); ?></h2>: Dette viser titlen på den aktuelle side.
    • <?php the_content(); ?>: Dette viser indholdet af den aktuelle side.
  • Hvis brugeren ikke har en af ​​de tilladte roller, vil koden i else blok udføres.
    • <h2>Restricted Access</h2>: Dette viser en overskrift, der angiver, at indholdet er begrænset.
    • <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>: Dette viser en meddelelse, der forklarer, at indholdet er begrænset til bestemte roller og giver et "Log ind"-link. Linkets href attribut er indstillet til den login-URL, der genereres af wp_login_url($redirect_url), hvilket sikrer, at brugere omdirigeres tilbage til den aktuelle side efter at have logget ind.

Denne kode begrænser effektivt adgangen til specifikke roller, og hvis en bruger ikke har en af ​​de tilladte roller, beder den dem om at logge ind med et link, der omdirigerer dem tilbage til den aktuelle side efter at have logget ind.

Vælg din skabelon

For at bruge siden skal du vælge Kun abonnenter sideskabelon i det avancerede afsnit af din sides muligheder (på sidebjælken). Dette vil begrænse siden til loggede læsere eller dine definerede roller.

Douglas Karr

Douglas Karr er CMO for OpenINSIGHTS og grundlæggeren af Martech Zone. Douglas har hjulpet snesevis af succesfulde MarTech-startups, har hjulpet med due diligence på over $5 mia. i Martech-opkøb og -investeringer og fortsætter med at hjælpe virksomheder med at implementere og automatisere deres salgs- og marketingstrategier. Douglas er en internationalt anerkendt digital transformation og MarTech-ekspert og foredragsholder. Douglas er også udgivet forfatter til en Dummies guide og en bog om virksomhedsledelse.

Relaterede artikler

Tilbage til toppen knap
Luk

Adblock fundet

Martech Zone er i stand til at give dig dette indhold uden omkostninger, fordi vi tjener penge på vores websted gennem annonceindtægter, affilierede links og sponsorater. Vi ville sætte pris på, hvis du ville fjerne din annonceblokering, mens du ser vores websted.