Beschränken Sie Seiten in WordPress, um eine Anmeldung zu erfordern

Screen Shot 2013 07 01 bei 12.23.52 Uhr

login_lock.jpgDiese Woche haben wir die Implementierung eines benutzerdefinierten Themas auf einer Client-Site abgeschlossen und sie haben darum gebeten, eine Art Interaktion zu erstellen, bei der einige der Seiten auf registrierte Abonnenten beschränkt sind. Zuerst haben wir darüber nachgedacht, Plugins von Drittanbietern zu implementieren, aber die Lösung war eigentlich recht einfach.

Zuerst haben wir die Seitenvorlage in eine neue Datei kopiert (jeder Name ist in Ordnung, behalten Sie einfach die PHP-Erweiterung bei). Kommentieren Sie die Seite oben auf der Seite unbedingt, damit Sie sie im Vorlageneditor nach Namen sehen können:

 

Suchen Sie als Nächstes im Code Ihrer Seite nach der Zeile, in der der Inhalt angezeigt wird. Es sollte so aussehen:

 

Jetzt müssen Sie Code um diese Zeile wickeln:

Nur für Abonnenten Es tut uns leid, der Inhalt, den Sie erreichen möchten, ist nur Abonnenten vorbehalten.

Der Code überprüft zunächst die Sitzung, um festzustellen, ob der Benutzer bei Ihrer WordPress-Site angemeldet ist. Wenn sie angemeldet sind, wird der Inhalt angezeigt. Wenn sie nicht angemeldet sind, wird in der Nachricht angegeben, dass Sie versuchen, eingeschränkten Inhalt zu erreichen.

Um die Seite nutzen zu können, müssen Sie die auswählen Nur für Abonnenten Seitenvorlage im erweiterten Bereich der Optionen Ihrer Seite (in der Seitenleiste). Dadurch wird die Seite auf angemeldete Leser beschränkt.

Wenn Sie wirklich ausgefallen sein möchten, können Sie Ihrer Seitenleiste auch eine Anmelde- und Abmeldemethode hinzufügen:

">Ausloggen /wp-login.php">Kundenlogin

28 Kommentare

  1. 1
  2. 2
  3. 3
    • 4

      Hallo Partha,

      Das wäre ziemlich einfach - Sie könnten die gleiche Technik zum Header der Seite hinzufügen und im Grunde sagen ... wenn (keine Benutzer-ID UND Seite nicht gleich dem Seitennamen), dann Header vorwärts zur Anmeldeseite.

      Doug

  4. 5

    tolle elegante Lösung! Genau das, was ich brauchte, dachte ich ernsthaft darüber nach, ein externes Anmeldesystem aufzubauen.
    das rockt!

  5. 6
    • 7
      • 8

        Es ist nicht benutzerfreundlich, aber das ist in Ordnung. Ich habe das Gefühl, dass ein paar Bilder von dem, was ich tun soll, helfen würden. Ansonsten ... werde ich nur Sachen ausprobieren, bis es funktioniert!

        • 9

          Kopieren Sie page.php, benennen Sie page2.php um und fügen Sie den obigen Code ein, speichern Sie die Datei, laden Sie sie zurück zu Inhalt / Thema / was auch immer aufgerufen wird, gehen Sie zum Posten oder ändern Sie das Standardseitenlayout in page2.php. Sie müssen keinen neuen Seitenstil / Layout erstellen. Kopieren Sie einfach den von Ihnen verwendeten und benennen Sie ihn um. so fullwidth.php ist so einfach fullwidth2.php.

      • 10

        Ok, nach VIELEN Versuchen und dem Anschauen anderer Tutorials im Internet… Ich habe festgestellt, dass das Erstellen einer neuen Seitenvorlage mein Problem ist. Ich mache eine in einem Texteditor und versuche sie hochzuladen ... wo? Ich weiß nicht einmal, wohin ich gehen soll. Ich kann diesen geheimen Ort zum Hochladen anscheinend nicht finden!

        • 11

          So wahr, LaRocque! Sie benötigen ein FTP-Programm und Zugriff auf den Themenordner Ihrer Website, damit Sie die Datei dort hochladen können. Derzeit gibt es KEINE Möglichkeit, dies über den Verwaltungsbildschirm zu tun. Eine Ausnahme wäre die Installation eines "Dateimanager" -Plugins, mit dem Sie neue Dateien erstellen können. Sei aber vorsichtig! 

  6. 12
  7. 13
  8. 14
  9. 15
    • 16

      Sie können auf jeden Fall nur überprüfen, ob ein Benutzer angemeldet ist oder nicht. Mit der oben definierten Methode können Sie jedoch möglicherweise Berechtigungsstufen verwenden, wenn Sie Stufen anpassen möchten!

  10. 17
  11. 18
  12. 19

    OK, also werde ich beißen ... Wie würden Sie dies ändern, um die Überprüfung von Berechtigungen zu ermöglichen?

    Nehmen wir an, wir möchten weiterhin jedem erlauben, seinen eigenen "Abonnenten" -Nutzernamen zu erstellen und Antworten zu posten.
    ABER - Wir gewähren nur den Benutzern, die von einem Administrator angegeben wurden, Zugriff auf die Seite "Nur Abonnenten".

  13. 20
  14. 21

    Douglas - ich habe Ihren Code verwendet - und zum größten Teil funktioniert es großartig! Das Problem, das ich habe, ist, dass der Link Abmelden zu einer Site zurückkehrt, die nicht existiert. Ich habe tatsächlich mehrere WordPress-Codes aus dem Internet ausprobiert, damit der Abmeldecode funktioniert. . . Der Benutzer bleibt jedoch weiterhin angemeldet und die Rückgabe lautet //wp-login.php?redirect_to=">log%20in%20%20%20%20%20%20%20%20%20%20%20%20 % 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%

    Irgendwelche Gedanken?

    • 22

      Es sieht so aus, als hätte der Code beim Kopieren aus Ihrem Browser eine Reihe von HTML-Leerzeichen hinzugefügt, Ryan. Kopieren Sie den Code in Notepad oder Textpad und kopieren Sie ihn dann in Ihre Vorlage, um das Zeug loszuwerden.

  15. 23

    Ok, genau das muss ich tun, aber ich habe eine Frage. Wie kann ich ein Feld "Anmelden" oder "Abonnieren" anzeigen, damit sie auf den Inhalt zugreifen können, wenn sie kein Abonnent sind?

    Vielen Dank

  16. 25

    Danke für den Code. wird die Leute wütend auf mich machen, aber sie nehmen an, sich anzumelden, wenn sie etwas wollen, das nicht jedem freien Zugang gewährt, damit die Dateien leicht zu finden sind.

  17. 26

    Es hört sich so an, als ob diese Methode einer Sitzungsentführung unterliegt. Das Anmelde-Cookie wird im sicheren Bereich hinzugefügt. Da WordPress dies jedoch als nicht sicheres Cookie verwendet, wird es weiterhin bereitgestellt, wenn der Benutzer zu einem Teil der Site zurückblickt, der nicht verschlüsselt ist.

  18. 28

Was denken Sie?

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.