Problem mit <?php if ( $user_ID ) : ?>

  • Hallo,

    ich möchte einen bestimmte Kategorie (und die Beiträge darin) nur für registrierte Leser einsehbar machen. In der comments.php wird ja über die Anzeige bestimmter Felder (z.B. username) durch den Befehl <?php if ( $user_ID ) : ?> entschieden.

    Als php-Neuling habe ich folgendes probiert:

    [INDENT]<?php if ( is_home() || is_category() ): ?> [/INDENT][INDENT]<li><h2><?php _e('Categories:'); ?></h2>[/INDENT][INDENT]<ul>[/INDENT][INDENT]<?php if ( $user_ID ) : ?>[/INDENT][INDENT]<?php wp_list_cats('exclude=5,6'); ?>[/INDENT][INDENT]<?php else : ?> [/INDENT][INDENT]<?php wp_list_cats('exclude=6'); ?>[/INDENT][INDENT]<?php endif; ?>[/INDENT][INDENT]</ul>[/INDENT][INDENT]</li>[/INDENT][INDENT]<?php endif; ?>[/INDENT]
    Ziel war natürlich, die Kategorie 6 immer auszuschließen und die Kategorie 5 nur anzuzeigen, wenn ein Benutzer angemeldet ist. Ergebnis ist aber, dass 5 auch grundsätzlich nicht angezeigt wird, ob ein- oder ausgeloggt.

    Wo liegt der Fehler?

    squirrel

    Ach so: Mountainbiken ist nicht alles,… , Wordpress 2.2.3 DE-Edition

    • 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

  • gefunden

    Sorry, hab's gefunden. In der Index.php wurde der User-Status nicht abgefragt. Wenn ich folgenden Code vor dem if-tag einfüge, klappt es:[INDENT]<?php global $user_ID;[/INDENT]

    [INDENT]get_currentuserinfo();[/INDENT]

    [INDENT]?>[/INDENT]
    [COLOR=blue]Ich ändere meine Frage:[/COLOR] Wie sähe ein möglicher Code aus, wenn die Kategorie ganz normal in wp_list_cats angezeigt werden sollte, aber beim klick darauf vor der tatsächlichen Anzeige überprüft werden sollte, ob der user eingeloggt ist, oder nicht. Natürlich bei !$user_id -> keine Anzeige / Anzeige "du musst eingeloggt sein", aber bei $user_id ganz normaler Zugriff.

    Gruß,
    squirrel

  • Danke.

    Mein fertiger Code in der index.php sieht jetzt so aus:

    [INDENT]<?php global $user_ID; get_currentuserinfo(); ?>

    <?php if ( is_category('8') && !$user_ID) : ?>

    <p>Du musst <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo get_option('siteurl'); ?>/?cat=8>">angemeldet sein</a> um die Beiträge dieser Kategorie lesen zu können.</p>

    <?php else : ?>
    [/INDENT]

Jetzt mitmachen!

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