Content Marketing

WordPress: Lag en sidemal som krever at en bruker er registrert og pålogget

Vi var ferdig med å implementere et tilpasset tema på en kundeside, og de ba om at vi skulle bygge en slags interaksjon der noen av sidene var begrenset til registrerte abonnenter. WordPress tilbyr synlighetsalternativer for sider, men det passer ikke dette scenariet.

  • Privat – Hvis du velger synlighet som privat, kan administratorer og redaktører bare se innholdet.
  • Passordbeskyttet – krever at en unik kode brukes for hver side for å se innholdet.

Først tenkte vi på å implementere tredjeparts plugins, men løsningen var enkel. Vi kan lage en unik mal som krever at seerne registrerer seg og logger på for å se siden.

WordPress-mal: Kun abonnenter

Først kopierte vi kundens sidemal (page.php) innen barn tema. For å lage en mal, må du legge til litt kode øverst på siden din:

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

Deretter ser du etter linjen i sidens kode som viser innholdet. Det skal se slik ut:

<?php the_content(); ?>

Nå må du pakke litt kode rundt den linjen:

<?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 av koden i punkttegn:

  • $redirect_url = get_permalink();: Denne linjen henter URL-en til gjeldende side og lagrer den i variabelen $redirect_url.
  • if (is_user_logged_in()) :: Denne betingede erklæringen sjekker om en bruker allerede er pålogget.
  • Hvis brukeren er pålogget, blir koden innenfor denne blokken utført.
    • <h2><?php the_title(); ?></h2>: Dette viser tittelen på gjeldende side.
    • <?php the_content(); ?>: Dette viser innholdet på gjeldende side.
  • Hvis brukeren ikke er logget inn, vil koden i else blokken er utført.
    • <h2>Subscriber Only</h2>: Dette viser en overskrift som indikerer at innholdet er begrenset.
    • <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 melding som forklarer at innholdet er begrenset til bestemte roller og gir en "Logg inn"-kobling. Linken er href attributtet er satt til påloggings-URLen generert av wp_login_url($redirect_url), og sikrer at brukere blir omdirigert tilbake til gjeldende side etter pålogging.

Denne koden sjekker effektivt om en bruker er pålogget, og hvis ikke, oppfordrer den dem til å logge på for å få tilgang til det begrensede innholdet, med en lenke som leder dem tilbake til siden de prøvde å se.

Vis etter spesifikk brukerrolle

Du kan også begrense innholdet til bestemte brukerroller hvis du vil:

<?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 av koden i punkttegn:

  • $allowed_roles = array('subscriber', 'editor', 'author');: Denne linjen oppretter en rekke tillatte roller, og spesifiserer hvilke brukerroller som har tilgang til innholdet. Du kan tilpasse denne matrisen til å inkludere rollene du vil tillate.
  • $user = wp_get_current_user();: Denne koden henter informasjon om gjeldende bruker, inkludert rollene deres.
  • $redirect_url = get_permalink();: Denne linjen lagrer gjeldende sides URL i $redirect_url variabel, som vil bli brukt til å omdirigere brukeren tilbake til gjeldende side etter at de har logget på.
  • if (array_intersect($allowed_roles, $user->roles)) :: Denne betingede setningen sjekker om brukerens roller krysser rollene som er oppført i $allowed_roles array. Den sjekker med andre ord om brukeren har en av de tillatte rollene.
  • Hvis brukeren har en av de tillatte rollene, kjøres koden i denne blokken.
    • <h2><?php the_title(); ?></h2>: Dette viser tittelen på gjeldende side.
    • <?php the_content(); ?>: Dette viser innholdet på gjeldende side.
  • Hvis brukeren ikke har en av de tillatte rollene, vil koden i else blokken er utført.
    • <h2>Restricted Access</h2>: Dette viser en overskrift som indikerer at innholdet er begrenset.
    • <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 melding som forklarer at innholdet er begrenset til bestemte roller og gir en "Logg inn"-kobling. Linken er href attributtet er satt til påloggings-URLen generert av wp_login_url($redirect_url), og sikrer at brukere blir omdirigert tilbake til gjeldende side etter pålogging.

Denne koden begrenser effektivt tilgang til spesifikke roller, og hvis en bruker ikke har en av de tillatte rollene, ber den dem om å logge på med en lenke som vil omdirigere dem tilbake til gjeldende side etter pålogging.

Velg malen din

For å bruke siden, må du velge Bare abonnenter sidemal i den avanserte delen av sidens alternativer (på sidefeltet). Dette vil begrense siden til påloggede lesere eller dine definerte roller.

Douglas Karr

Douglas Karr er CMO for Åpne INSIGHTS og grunnleggeren av Martech Zone. Douglas har hjulpet dusinvis av vellykkede MarTech-startups, har bistått med due diligence på over 5 milliarder dollar i Martech-oppkjøp og -investeringer, og fortsetter å hjelpe selskaper med å implementere og automatisere salgs- og markedsføringsstrategier. Douglas er en internasjonalt anerkjent digital transformasjons- og MarTech-ekspert og foredragsholder. Douglas er også en publisert forfatter av en Dummies guide og en bok om lederskap for bedrifter.

Relaterte artikler

Tilbake til toppen-knappen
Lukke

Annonseblokkering oppdaget

Martech Zone er i stand til å gi deg dette innholdet uten kostnad fordi vi tjener penger på nettstedet vårt gjennom annonseinntekter, tilknyttede lenker og sponsing. Vi vil sette pris på om du vil fjerne annonseblokkeringen når du ser på nettstedet vårt.