Eigenes Plugin erstellen und auf bestimmter Seite einbinden (Suche Tut's)

  • Hallo,

    ich würde gerne ein eigenes Plugin erstellen, welches per Shorttag oder Ähnlichem (gibts ne Alternative? Das Plugin wird eh nur für EINE Seite benötigt) auf eine Seite eingebunden werden kann. Kennt ihr dazu gute Tutorials? Leider finde ich nur Tutorials, welche das erstellen an sich erläutern. Jedoch nicht spezifisch darauf eingehen, wie ein Plugin auf eine Seite eingebunden wird.

    Zu Anfang soll das Plugin nichts weiter als ein paar Daten aus der Datenbank auslesen und diese auf der Seite (meiner Wahl) anzeigen.

    Viele Grüße
    Basti46

    • 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

  • ansich gibt es zwei Möglichkeiten um irgenwas (zb aus eigener Datenbank) auf eine Seiten zu bringen
    Plugins oder Templates.
    alles dazu steht in http://codex.wordpress.org
    beides bedarf Kenntniss in PHP
    bei Templates (zb definierte Seitendarstellungen in Themen Designs) baut man die Funktionen sozusagen in die darzustellende Seite ein, zb über die function.php oder direkt ins Template
    bei Plugins bastelt man die Funktion zusammen und per Hook, Shortcodes usw. kann man dann diese Funktion in Content (Seiten oder Beiträge) einfach anwenden.
    oder die Funktionen des Plugins wiederum als PHP codeaufruf in Templates einsetzen.

    eine Datenbankanfrage die innerhalb eines Content darstellt werden sollte (nehme ich mal bei deiner Frage an), wäre daher am Idealsten ein Plugin zu basteln, und dazu eine Shortcode auf die Funktion, und diese Shortcode kann innerhalb von Content (Seiten, Beiträge) einfach verwendet werden und die Daten können damit angezeigt werden.

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Vielen Dank für deine Antwort. Ich bin momentan ein bisschen am rumprobieren und weiss nun wie man Shortcodes erstellt, leider klappts noch nicht wie gewollt. Ist es möglich bzw. wie ist der Weg Shortcodes über Plugins zu benutzen? Der "normale" Weg wäre ja diese in der functions.php des jeweiligen Themes zu deklarieren...

  • in einem Beispieplugin von mir http://wordpress.org/extend/plugins/wp-hallo-welt/
    findet man im Quellcode einfache Beispiele wie man Shortcode und anderes bastelt, um damit etwas auf Seiten/beiträge anzeigen zu lassen.

    und wie schon erwähnt, ob man ein Plugin oder im Thema in der functions.php baut ist egal. Grundlage ist PHP Know How, verständniss für HTML und lesen von http://codex.wordpress.org, dann ist alles möglich

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Danke für eure Antworten! Das hat mich schon sehr weitergebracht. Allerdings habe ich nun ein weiteres, kleines Problem. Und zwar bewirkt folgender Code, dass der echo Text direkt auf allen Seiten und ohne den Shortcode zu benutzen ausgegeben wird:

    Mache ich das selbe jedoch ohne Klasse drumrum, also nur die Funktion, geht alles. Was mache ich falsch?

  • Nicht mit add_action arbeiten und den zitierten Codex studieren!

    --> add_shortcode() ist Dein Freund.

    Beispiel:

    Code
    add_shortcode('mein-shortie', 'meine_funktion');
    
    
    function meine_funktion($att,$content=null) {
    
    
        $foo = weitere_funktion($att);
        
        return $foo;
    }

    Per add_shortcode() setzt Du den Shortcode und die zugewiesene Funktion. Diese sollte ggf. über ein Attribut-Array ($att) verfügen und ggf. den Inhalt des Shortcodes ($content) verarbeiten.

    Shortcode mit Attribut: [mein-shortie user='esel']
    Shortcode mit Content: [mein-shortie user='esel']Inhalt des Shortcodes[/mein-shortie]

    Kombinationen anhängig. Bei komplexeren Szenarien kann dann die weitere_funktion() ausgelagert werden.

    Rest: Codex!

    HF & GL

  • Aber ohne add_action krieg ich doch den Shortcode ausserhalb der functions.php nicht zum laufen, oder?
    Ausserdem wollte ich wissen, ob man auch Funktionen von Klassen heraus an [COLOR=#333333]add_shortcode uebergeben kann. Das hat naemlich wie oben zu sehen, nicht funktioniert.[/COLOR]

  • Okay. Öffne Deine functions.php und füge den Code ein:

    Code
    function my_wrap( $atts, $content = null ) {
        return '<div class="my_class">' . do_shortcode($content) . '</div>';
    }
    add_shortcode('div-wrap', 'my_wrap');

    Im RTE einfach nutzen:

    Code
    [div-wrap]Hier steht Dein Inhalt[/div-wrap]

    Nochmals:

    Hinweis:
    Die WP-Filter 'wpautop' und 'wptexturize' führen gerne zu ungewollten Problemen. Das lässt sich zwar mit einem remove_filter beheben, was aber dann zu dem Umstand führt, dass die Shortcodes nicht mehr sauber verarbeitet werden. Dafür kann man sich dann eine eigene Funktion schreiben (im Anwendungsfall helfe ich gerne).

Jetzt mitmachen!

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