Support » Allgemeine Fragen » get_currentuserinfo in einem plugin

  • Hallo Leute,

    oder besser: Sorry, Leute

    ich habe das Problem inzwischen herausbekommen. Ich hatte den code nicht in einem vom Plugin aufgerufenen Funktion eingebaut.

    Da ich den Post nicht so leicht löschen kann, möge er anderen vielleicht helfen, einen derart dämlichen Fehler zu vermeiden:

    WP-Funktionen sind in Plugins nur verfügbar, wenn sie in Funktionen stehen, die von diesem Plugin aufgerufen werden.

    ich habe ein simples Plugin gebaut, das einige Spezialfunktionen aus einem Inhouse-system von Dashboard aus erreichbar macht.

    Das geht sehr gut aber: ich möchte in diesen Funktionen auch ein paar WP-funktionen aufrufen. Wenn ich nun in meiner Plugindatei foldgendes einfüge:

    global $current_user;
    get_currentuserinfo();

    echo ‚Username: ‚ . $current_user->user_login . „\n“;

    Dann bekomme ich einen fatalen Fehler von PHP wegen einer nicht definierten Funktion. Soweit, so gut: vielleicht kann man ja in Plugins nicht ohne weiteres WP-Funktionen benutzen.?

    Aber nun wird es richtig crazy: füge ich den code oben in eine Datei ein, die ich im code der Plugin datei mit require einbinde, funktioniert get_currentuserinfo ganz normal.

    Hat jemand einen Tipp?

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Hallo,

    ich kann das Problem so nicht nachvollziehen. Kannst du ein minimales Plugin bauen wo das Problem auftaucht und dann den Code posten?

    Gruß
    Frank

    Thread-Ersteller zettberlin

    (@zettberlin)

    Danke für die Antwort aber wie ich oben schon reineditiert habe: der Fehler lag auf meiner Seite.

    Ich hatte einen Aufruf von get_currentuserinfo in einen Bereich der Plugindatei geschrieben, der nicht mit add_action eingebunden wird.

    Was zur Verwirrung beiträgt ist, dass in diesem „falschen“ Bereich auch ein paar require-Befehle stehen, die ganz prima funktionieren….

    Gilt aber eben nicht für native WP-Funktionen, was auch irgendwie logisch erscheint.

    Das Problem in Code:

    require („meine.php“); //funktioniert

    global $current_user;
    get_currentuserinfo(); //fatal error, undefined function

    function (meinplugin){
    global $current_user;
    get_currentuserinfo(); //funktioniert
    }
    add_action( ‚admin_head‘, ‚meinplugin‘ );

    Hallo,

    da die Aufrufe nicht in einerr Funktion stehen, werden sie ausgeführt beim hinzuladen der Datei. Das Laden der Plugins passiert relativ früh im Ladeprozess von WordPress. Wahrscheinlich existiert zu dem Zeitpunkt der User noch nicht – Das ist jetzt aber Spekulation, da müsste ich den Corecode an der Stelle ansehen. Andererseits aber macht es auch keinen Sinn an der Stelle direkt etwas auszuführen.

    Gruß
    Frank

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „get_currentuserinfo in einem plugin“ ist für neue Antworten geschlossen.