WP – Tutorial, wir schreiben ein WordPress Plugin – Teil 2

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Kommentare

  
  1. Nicolas Limmeroth sagt:

    Hallo,

    ich habe auf die schnelle probiert mich in die Plugins einzuarbeiten, um herauszufinden in welchen Passagen die Rechte im Admin-Bereich (für Role-Manager) deklariert werden. Leider erfolglos.

    Bei den meisten Plug-Ins läuft die Zusammenarbeit mit Role-Manager wunderbar. Doch bei Einem möchte ich dies nachträglich auch optimieren, damit auch Laien ihr (leichteres) Backend bedienen können.

    Ist dies schwierig?
    Wäre für jede Hilfe/ Link/ Tipp sehr dankbar.

    Grüße, Nicolas

  2. Dazu steht natürlich auch eine Funktion zur Verfügung: current_user_can, Erläuterung in einem Beitrag "WP - Plugin Tipp - Userlevel abfragen" von mir und ein aktueller Linktipp

  3. Chukki sagt:

    Wunderbare Tutorials! Bin echt begeistert... habe bisher immer alle Funktionen ausgelagert, aber ist ja echt einfach das ganze ins WP-Backend zu integrieren.

    Gruß Chukki

  4. marco sagt:

    hallo, ich schon wieder...will ja nicht nerven :-)
    habe dein tutorial einmal durchgemacht, um aus dem backend variablen zu setzen.
    funktioniert auch soweit. das form wird richtig dargestellt.

    aber: er frisst die variable =$location nicht.

    lasse ich das "=" weg, wird die seite angezeit ohne inhalt unter "action".

    wie muss die variable heissen das er sie richtig herholt? oder kann ich z.b. auch fix "options.php" eintragen?!

    kann ich die geschriebene variable auch aus dem template wieder herholen?

    danke

  5. marco sagt:

    fehler gefunden!
    die variable nimmt er aber $HTTP_POST_VARS muss $_POST sein...
    dann übernimmt er endlich den neuen eingabewert!

    wozu is jetzt die
    function fb_meta_description()
    { ...}
    da?! wenn ich die befehle darin auskommentiere, geht es ja trotzdem.
    und sie wird ja nirgens aufgerufen...

  6. Ich habe ein Plugin, das aus den Daten aus der form eine neue Webseite präsentiert.
    Wenn ich diese Ausgebe, dann wird die allerdings nicht im admin Bereich, sondern komplett oberhalb ausgegeben (noch vor html und head!).

    Kannst du ein Beispiel geben, wie man mit forms nicht nur Variablen setzt, sondern auch eine webseite / html Code danach ausgibt?

    • @Matthias: Dazu muss man anders vorgehen, du musst im Content etwas ersetzen. Dazu muss auf den Inhalt zugegriffen werden. So kann man zum Beispiel einen Schlüssel oder Shortcode im Content absetzen, der dann den Inhalt von deinem Form setzt.

  7. Ich habe es jetzt gelöst, aber denke nicht, dass es eine saubere Lösung ist. Imwesentlichen prüfen ich in einer "pluginname_main()" auf alle POST Variablen, und führe den eigentlichen main code nur aus, wenn keine davon zutraf.

  8. Klasse Tutorial, das ist ja tatsächlich garnicht soo schwierig. Werd mich am Wochenende wohl auch mal an einem eigenen Plugin versuchen. Meine PHP-Kenntnisse lassen allerdings zu wünschen übrig, ich hoffe es klappt trotzdem.

  9. Jürgen sagt:

    Klasse Artikel.
    Habe bis jetzt meine selbstgestrickten Plugins meist aus anderen abgeleitet.
    Aber jetzt brauche ich mal einen richtig "Von-Grund-Auf-Schnellanleitung".
    Danke, bekommt auch einen Tweet.
    Jürgen

  10. Maxim sagt:

    Vielen Dank für eine gute Einleitung! Vor allem Teil 0 und 1 sind sehr hilfreich. Wenn man die verstanden hat, so kann man schon einfache Plugins schreiben. Ich ich habe gerade meinen ersten WordPress Plugin geschrieben =)
    http://www.virtual-maxim.de/projekte/aktuelle/piwiksearchenginekeywords/

    Gruß, Maxim

  11. gundi sagt:

    Hmmmm..., bin ich zu doof oder warum klappt das nicht so richtig.
    Folgender Code scheint bei mir nicht richtig zu funktionieren:

    action="-?=$location ?-"

    Hier wird bei mir im HTML-Code unter "action" wörtlich -?$location ?- angezeigt und kein Wert aus der Variable $location übergeben.

    und auch

    value="-?=get_option( 'fb_meta_field' ); ?-"

    zeigt mir im Textfeld nicht den Meta-Wert vom Key "description", sondern wird auch wörtlich (-?=get_option( 'fb_meta_field' ); ?-) angezeigt.

    Nebenbei: In meiner WordPress-Version (3.0.2) hat sich die Funktion "the_meta()" stark verändert (z.B. stehen bei mir nicht die globalen Variablen "$id", "$post_meta_cache", "$fb_meta_field" drin)

    Hängt das Problem vielleicht damit zusammen? Ich wäre für Hilfe sehr dankbar.

    Grüße
    gundi

  12. gundi sagt:

    Sorry, ich habe noch vergessen:
    Überall, wo ich ein "-" (Bindestrich) gesetzt habe steht bei mir ein "" im Code. Ich konnte es komischerweise nicht hier rein schreiben, weil versucht wurde als HTML-Code darzustellen (und es somit nicht sichtbar war).

  13. Cognac sagt:

    Gundis Fehler hatte ich auch, Problem ist vermutlich die PHP-Version bei XAMPP o.ä., bei mir muß die Zeile wie folgt lauten:

    <form name="form1" method="post" action="<?php echo $location; ?>">

    D.h. Shortcuts funktionieren nicht und es muss zwingend das "php" ergänzt werden.

    • @Cognac: dies ist eine Einstellung von PHP, wenn man auf dem Server die Kurzschreibweise nicht zulässt, dann ist dies nicht möglich. Aber nach Codex und PHP Regeln sollte man diese Schreibweise eh nicht anwenden, was ich nicht mehr tue; aber der Beitrag ist schon etwas älter.

  14. Manni sagt:

    @Frank
    Vielen Dank für die, wie ich meine, einzige deutsche Einführung in das Schreiben eines WP-Plugins, die etwas gebracht hat.

    Nachdem ich nun vor ca. 1 Monat ein einfaches Plugin geschrieben hatte, ist dies inzwischen umfangreicher geworden. Seit ich nun 5 weitere Optionsmöglichkeiten in die Optionseite integriert habe, verursacht das Plugin leider einen Fehler.

    Will man beim Schreiben eines Artikels eine Grafik über den Mediabutton einfügen, geht zwar das Fenster auf, aber es wird folgende Meldung gezeigt:

    Bist du sicher, dass du das tun möchtest?
    Bitte nochmal versuchen.

    Klickt man auf: "Bitte nochmal versuchen" wird die ganze Adminseite mit der derzeitigen Artikelseite in das Fenster geladen.

    Deaktiviere ich das Plugin, kann ich wieder Bilder einfügen.

    Ich poste das hier, weil ich im Netz bisher viele, aber keine passende Anwort gefunden habe (weder englisch noch deutsch) und weil ich glaube, dass dies irgendein Anfängerfehler ist.

    Vielleicht hast Du ja mal so ein Ding gehabt und eine Lösung gefunden oder einen Ansatz, wo ich suchen sollte?

  15. Manni sagt:

    @Frank und Interessierte:

    Habe den Fehler gefunden. Ich hatte die DB-Einträge, also so etwas hier:

    //Dings UID
    $dings_uid = get_option('dings_uid');
    if(isset($_POST['action'])){
    if ('insert' == $_POST['action']) {
    update_option( 'dings_uid', esc_html( $_POST['dings_uid'] ) );
    }
    }

    vor die Funktion (Definition) Optionpage gesetzt. Damit funktionierte zwar das Plugin, nicht aber der Upload von Mediendateien in Artikel oder Seiten.

    Vielleicht hilft das ja mal dem einen oder anderen mit ähnlichen Problemen. :-)

Trackbacks

  1. Tutorial: Wie schreibt man ein WordPress-PlugIn...

    Für alle die schon immer mal ein PlugIn für WordPress schreiben wollten, sich aber an das Thema noch nicht herangetraut haben, gibt’s hier ein mehrteiliges Tutorial. Auf aktuell vier ( Teil: 0 - 1 – 2 – 3; keine Ahnung, warum es einen Nullten T...

  2. [...] wie beim Hinzufügen der Widget-Konfigurationsoberfläche, können auch ganze Konfigurationsseiten in die WordPress-Administrationsoberfläche hinzugefügt werden. Mit add_menu_page(…) kann eine neue Menü-Seite eingefügt werden. Jedoch [...]

© 2013, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift