Support » Allgemeine Fragen » Seite restriktionen

  • Gelöst peacefulwarri0r

    (@peacefulwarri0r)


    Moin Moin,

    ich versuche bestimmte Seiten nur für eingeloggte User zugänglich zu machen.
    Hab bisher kein passendes Plugin gefunden. Nun hab ich das Profil das Unterseiten dynamisch sind und ich die mit meiner Variante nicht zu fassen bekomme.

    add_action( 'template_redirect', 'redirect_to_specific_page' );
    
    function redirect_to_specific_page() {
      function m_redirect(){
        wp_redirect( 'https://www.topage.de/login', 301 ); 
        exit;
      } 
    
      if (is_page(array('hinzufuegen', 'gruppen', 'aktivitaet')) && ! is_user_logged_in()){
            m_redirect();
      }
    }
    

    Ich möchte die Seite /mitglieder/<mitgliedname> nur für eingeloggte User sichtbar machen. Mit der Funktion is_page komme ich leider nicht dran. Regex funktionieren da nicht.

    Hat jemand einen Tipp?

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Moderator Bego Mario Garde

    (@pixolin)

    Warum nutzt du nicht eines der Membership-Plugins im Plugin-Verzeichnis?

    Hmm ich weiß nicht. Bisher hab ich keines gefunden was kostenfrei ist und diesen Zweck erfüllt. Machne funktionieren erst garnicht oder trumpfen mit etlichen popups auf. Gefühlt bin ich mit der kleinen Funktion fast am Ziel.

    Um nur mal ein beispiel einer ewigen Suche zu nennen. Simple WP Membership: Installiert/Aktiviert eine Seite als schützenswert eingestuft und dennoch ist die Seite noch zugänglich. Scheint zu simpel für mich zu sein. 🙂 Zu dem hab ich nun ein neues Menü, ganz viele neue Funktionen, die bestehenden Mitglieder aus dem WP werden aber nicht erkannt.

    Nicht schön, aber funktioniert und ist nicht noch ein Plugin:

    add_action( 'template_redirect', 'redirect_to_specific_page' );
    
    function redirect_to_specific_page() {
      $site_uri = bp_get_requested_url();
    
      function m_redirect(){
        wp_redirect( 'https://www.site.de/login', 301 ); 
        exit;
      } 
    
      if(!is_user_logged_in()){
        if (is_page(array('foobar', 'gruppen', 'aktivitaet'))){
          m_redirect();
        }elseif (preg_match('#.*/mitglieder/.*#i', $site_uri)){
          m_redirect();
        } 
      }
    }
    
    
Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)