Artikel nur fuer registrierte lesbar

  • Servus!
    Bin ein bisschen verwundert, dass ich mein Blog nicht anders schuetzen kann, ausser jeden einzelnen artikel mit passwort zu schuetzen.

    gibt es eine moeglichkeit die leserechte nur registrierten benutzern zu erteilen? bzw., unter status "privat" die registrierten mit einschliessen?

    vielen dank fuer eure hilfe.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Mit zwei Minuten Bastelei an den Theme-Dateien geht das...

    Die Theorie:

    PHP
    <?php global $user_level; if ($user_level > 1) { ?>  
    
    
    Code für das Anzeigen der Beiträge (variiert leicht ja nach Theme)
    
    
    <?php } ?>

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • vielen dank fuer die muehe.
    wenn ich jetzt die artikel vom status privat auf oeffentlich setze, sind sie nur fuer mich als admin, aber nicht fuer den registrierten leser einsehbar.

  • Hmpf, bei einem registrierten Leser scheint der user_level nur 0 zu sein...ich muss noch etwas rumtesten.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Das Problem ist, dass Registrierte Leser, die wirklich nix anderes dürfen nur user_level 0 und damit den gleichen Rang wie Unregistriere haben.
    Da ich auf die schnelle keine bessere Lösung gefunden habe, lass' ich die Unterscheidung anhand der Userlogins machen. Unregistrierte haben nämlich keinen Login.

    Die Abfrage mit dem user_levek in den den Dateien muss also durch das ersetzt werden:

    PHP
    <?php global $user_login; if ($user_login <> '') { ?>

    (Nicht schön, aber selten :mrgreen: )

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Genau dort, wo vorher der andere war:

    PHP
    <?php global $user_level; if ($user_level > 1) { ?>


    und zwar in den Dateien, die ich hochgeladen hatte.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Die Abfrage mit dem user_levek in den den Dateien muss also durch das ersetzt werden:

    PHP
    <?php global $user_login; if ($user_login <> '') { ?>

    (Nicht schön, aber selten :mrgreen: )


    Wow, geil danke :-D Danach hab ich schon eine Weile gesucht. Hätt ich eigentlich auch selber drauf kommen können :lol: Perfekt.

    *Nimm das Leben nicht zu ernst, du kommst eh' nicht lebend raus*

  • Der Code ist aber echt nicht schön, es gibt einen viel besseren:

    PHP
    if (is_user_logged_in() ) {

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Hallo,

    ich steh grad auf dem Schlauch. Ist es mit [COLOR=#000000][COLOR=#006600]if ([/COLOR][COLOR=#0000CC]is_user_logged_in[/COLOR][COLOR=#006600]() ) { auch möglich, eine Kategorie mit all ihren Beiträgen nur anzuzeigen wenn der User eingelogt ist?

    Oder wenn man mehrere Seiten hat, dass z.B. eine dauernd angezeigt wird und die andere nur, wenn man eingelogt ist?

    MFG
    [/COLOR][/COLOR]

  • Hallo jottlieb,

    vielen Dank für deine Antwort!
    Bei den Seiten klappt das so wunderbar. Muss halt dann unterschiedliche Themes anlegen, oder?

    Wie kann ich das bei Kategorien machen?
    Also, dass die Beiträge von einer Kategorie nur angezeigt werden wenn der User eingeloggt ist?

    Gruß
    Jonathan

  • Muss halt dann unterschiedliche Themes anlegen, oder?


    Nein. Nur bei den Seiten jeweilig das Template angeben.
    Oder es gleich global machen in dem man die page.php damit füttert und die Template-Angabe rausnimmt.

    Zitat


    Wie kann ich das bei Kategorien machen?
    Also, dass die Beiträge von einer Kategorie nur angezeigt werden wenn der User eingeloggt ist?


    Erwähnte ich ja schon. archive.php öffnen (falls nicht vorhanden, dann aus der index.php erstellen), the_content (oder the_excerpt) suchen und hiermit ersetzen:

    PHP
    <?php if (is_user_logged_in()) { ?> 
    <?php the_content() ?> 
    <?php } else { ?> 
    Bitte logge dich ein um diese Seite anschauen zu k&ouml;nnen. 
    <?php } ?>

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Hallo Jottlieb,

    vielen Dank. Du hast mir echt weiter geholfen. Ich hab gedacht, dass die archive. php nicht für die aktuellen Blog Einträge ist. Zudem nutze ich das K2 Theme wo das nochmal anders ist. Aber irgendwie hab ichs hinbekommen.

    Zitat

    Nein. Nur bei den Seiten jeweilig das Template angeben.
    Oder es gleich global machen in dem man die page.php damit füttert und die Template-Angabe rausnimmt.

    Hmm, ok. ich glaub langsam komm ich drauf. In einem Theme kann man mehrere Templates erstellen. Also ich kann die page.php kopieren und in page1.php umbenennen. Und dieses "template" kann ich dann einer Seite zuweisen, die man nur sehen darf wenn man eingeloggt ist. Die page.php haben dann die Seiten, die alle sehen dürfen. OK. super.

    Zitat

    Erwähnte ich ja schon. archive.php öffnen (falls nicht vorhanden, dann aus der index.php erstellen), the_content (oder the_excerpt) suchen und hiermit ersetzen:

    Hatte ich nicht ganz verstanden :?
    Aber jetzt ists klar mit der archive.php bzw. in meinem Fall
    Eine Frage hab ich aber noch. Hiermit kann ich ja nicht eine Kategorie bestimmen, die auch angezeigt wird, wenn jemand nicht eingeloggt ist. Oder ist das doch möglich?

    Gruß
    Jonathan

    Einmal editiert, zuletzt von jonathan (8. Februar 2007 um 01:03)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!