Adminpanel im Frontend

  • So, nach dem ich mir jetzt hier 'nen Wolf gesucht habe und dennoch nichts fand, ganz einfach die Frage:

    Wie kann ich im Frontend von Wordpress, also zum Beispiel in der single.php für die Artikelansicht ein kleines Adminpanel einbauen? Die Funktionen des Adminpanels sind vorhanden. Soweit, so gut. Schlechter ist allerdings, das mir die Anweisung fehlt, daß dieses Panel nur derjenige sieht, der als Rolle "Admin" zugewiesen bekommen hat.

    Jemand Ideen?

    Beispiel:


    <?php if ($userstatus == 10) { ?>

    <div>Adminmenü</div>

    <?php } ?>

    • 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

  • Genau dies war auch mein Problem.

    Ich habe es jetzt dank diesem Post hier in den Griff bekommen.

    Eine einziges Sache irritiert mich allerdings noch. Welches Level haben unregistrierte User? Ich dachte erst, sie hätten Level 0. Mein Problem ist nämlich nach wie vor, dass unregistrierte User gewisse Dinge nicht sehen sollen.

    Mit diesem script bin ich bisher erfolgreich. Das Problem ist aber immer noch folgendes: Wie spreche ich unregistrierte User an, da sie scheinbar kein eigenes Level haben?

    Anhand dieses codes habe ich meinen Teilerfolg erzielt, dass alles User bis Level 4 außen vor bleiben. Ich möchte aber, dass alle registrierten User (inkl. Level 0) alles sehen können und nur die, die nicht registriert sind, ausgeschlossen werden.

    Hier ist mein code:

    Zitat

    <p class="posted"><?php the_author() ?> am <?php the_time('M jS Y') ?> <?php edit_post_link(__('Editieren')); ?><br/><?php
    global $userdata, $user_identity, $wpdb;
    get_currentuserinfo();
    ?>

    <?php if ($userdata->user_level>=5) { ?><a href="mailto:<?php the_author_email(); ?>">Frage an <?php the_author() ?> senden</a><br/>Andere Artikel von <?php the_author_posts_link(); ?> (<?php the_author_posts(); ?>)<br /><a href="<?php the_author_url(); ?>">HP von <?php the_author() ?> einsehen</a><?php } ?></p>

    Bin für jede Hilfe dankbar.

    Grüße
    monk77

  • Hat wirklich niemand einen Plan, wie sich dieses Problem lösen lässt? Es sollen wie gesagt nur registrierte User die Gelegenheit habe, gewisse Infos (siehe oben) einsehen zu können.

  • So, ich habe jetzt noch was zu diesem Thema gefunden. Mit diesem code hier liesse sich das Problem lösen. D. h. nur registrierte User könnten in verschiedene Bereiche Einblick erhalten. Meiner Meinung nach ist dieser Weg aber sehr umständlich, weil ich jedesmal, wenn sich ein neuer User registriert, die index.php, search.php, archive.php und single.php editieren muss.

    Hier der code:

    Zitat

    < ?php global $user_ID;
    get_currentuserinfo();
    if ('2' == $user_ID) { ?>
    … Hier das, was ausgegeben werden soll …
    < ?php }?>

    In diesem Falle werden die Inhalte nur dem User mit der ID2 erlaubt. Das heißt in meinem Falle, dass diese ID-Liste bei mir unendlich lang werden wird. Gibt es da wirklich keine einfachere Möglichkeit? Ich suche seit zwei Tagen nach der Lösung. Selbst die Dokumentation gibt nichts näheres zu diesem Thema bekannt. Es muss doch möglich sein, dem System durch einen einfachen Befehl deutlich zu machen, eine Abfrage zu tätigen (ID bekannt oder unbekannt) und demnach die Ausgabe verschiedener Bereiche zu präsentieren.

    Oder ist es möglich, von Anfang an (also im Vorfeld, bevor diese IDs existieren), alle User von 1 - 5000 zu erfassen? Ich kann wirklich schlecht, alle zukünftigen User von Hand editieren.

    edit:

    Ich habe jetzt hier noch was interessantes gefunden:

    In diesem Szenario sollen gewisse Dinge nur für nicht registrierte User eingeblendet werden (z. B. Werbung, usw.).

    Zitat

    <?php global $userdata;
    get_currentuserinfo();
    if ( ! $userdata->user_login ) { ?>
    ... hier alles was nur für
    nicht eingeloggte User relevant ist ...
    <?php }?>

    gefunden bei im web gefunden

    Bei mir muss es genau anders herum sein.

    nochmal edit:
    LÖSUNG

    Ich habe mein Problem selbst gelöst! Für alle die, die ein ähnliches Problem haben, hier der code.

    Zitat

    <?php global $userdata;
    get_currentuserinfo();
    if ( $userdata->user_login ) { ?>
    ... hier alles nur für registrierte User
    <?php }?>

    Grüße
    monk77

    Einmal editiert, zuletzt von monk77 (25. Oktober 2007 um 13:02)

  • if ( isset($user_level) && ($user_level >= 0) ) { ... }

    tuts nicht?


    Im Prinzip musst du ja nur folgendes ändern:

    PHP
    <p class="posted"><?php the_author() ?> am <?php the_time('M jS Y') ?> <?php edit_post_link(__('Editieren')); ?><br/><?php
     global $userdata, $user_identity, $wpdb;
     get_currentuserinfo();
     ?>
     
     <?php if ($userdata->[COLOR=Red][B]user_level>=0[/B][/COLOR]) { ?><a href="mailto:<?php the_author_email(); ?>">Frage an <?php the_author() ?> senden</a><br/>Andere Artikel von <?php the_author_posts_link(); ?> (<?php the_author_posts(); ?>)<br /><a href="<?php the_author_url(); ?>">HP von <?php the_author() ?> einsehen</a><?php } ?></p>
  • marX

    Nein, leider nicht. Mit dem von mir genannten code oben klappt es aber prima.:-D 2 tagelang habe ich das Netz durchsucht und wollte diese Problem lösen. Als ich heute morgen den code auf im web gefunden entdeckte, war das wie Weihnachten und Ostern zusammen. Ist immer wieder ein schönes Erlebnis, wenn man ein Problem lösen und kann und es funktioniert nachher genauso wie man es haben möchte. Vor allen Dingen weiß man dann, dass die ganze Mühe nicht umsonst war, weil es sich am Ende doch ausgezahlt hat, am Ball zu bleiben.

  • marX: Du vermutest richtig, denn ich hab das bei einer anderen Seite von mir in Verwendung.

    PHP
    <?php if (is_user_logged_in()) { ?>
    <ul class="navi">
            <?php wp_register(); ?>
        <li><?php wp_loginout(); ?></li>
    </ul>
    <?php } ?>

    Diese zweite Navi wird nur nach der Anmeldung angezeigt.

    LG, hzirl

Jetzt mitmachen!

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