Shortcode-Unterstützung in ein Plugin einbauen

  • Hallo!

    Ich benutze ein Plugin, dessen Inhalt über einen shortcode in vorhandene Seiten eingefügt wird.
    Nun möchte ich aber das ich in den Inhalt, der bereits über Shortcode eingefügt wird, auch noch einen Shortcode einfügen kann.

    Dazu muss das Plugin wohl irgendwie mit dem Wordpress Shotcode System verbunden werden.
    Ich hab ein bischen gegoogelt, konnte aber nichts wirklich brauchbares finden.

    So sieht der Shortcode des Plugins aus, in welchem ich den Support für alle anderen Shortcodes einfügen möchte:

    Code
    function register_shortcodes(){   add_shortcode('team-members', 'awts_shortcode_function_member_list');
    }
    
    
    
    
    add_action( 'init', 'register_shortcodes');


    Ich habe dann versucht via Filter den Shortcode Support einzufügen:

    Code
    add_filter( 'awts_shortcode_function_member_list', 'shortcode_unautop');
    add_filter( 'awts_shortcode_function_member_list', 'do_shortcode' );

    Funktioniert aber nicht :/


    Kann mir da bitte jemand weiterhelfen?

    • 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

  • Zu der Zeile mit dem register_shortcodes() muss es auch noch eine Funktion awts_shortcode_function_member_list() geben. Da steht der eigentlich interessante Teil drin.

    Im Grunde muss vermutlich nur ein do_shortcode() um den Rückgaberecht ergänzt werden. Das Problem ist nur, dass diese Änderung bei nächsten Plugin-Update wieder weg wäre.

    Der Ansatz mit add_filter ist in dem Fall der richtige. Das setzt aber auch vorrausgesetzt, dass das Plugin dafür einen Filter anbietet.

  • Der Ansatz mit add_filter ist in dem Fall der richtige. Das setzt aber auch vorrausgesetzt, dass das Plugin dafür einen Filter anbietet.

    danke für deine antwort!

    wie baue ich den filter in das plugin ein?
    ich möchte den filter so, das der plugin auf alle shortcodes hört, die man auf den seiten auch einbauen kann.
    also soll der plugin auf alle shortcodes hören und nicht nur einen bestimmten shortcode, einmalig ausführen.


  • wie baue ich den filter in das plugin ein?

    Im Prinzip so:

    Code
    add_filter( 'hier_gehoehrt_der_hook_des_plugins_rein', 'do_shortcode' );

    Das Problem ist, Du benötigst dafür den entsprechenden Hook. Den muss der Plugin Autor aber auch zur Verfügung stellen.
    Wenn es keinen Hook gibt, kannst du nur das Plugin selbst bearbeiten, woduch es aber nicht mehr updatefähig ist.

    Zu der Zeile mit dem register_shortcodes()
    muss es auch noch eine Funktion awts_shortcode_function_member_list()
    geben. Da steht der eigentlich interessante Teil drin.

    Entweder du postest hier mal den Inhalt dieser Funktion. Dann könnten wir schauen, ob es einen Hook gibt und wie der heißt.
    Oder du schaust in die Dokumentation des Plugins. Oder du sagt uns zumindest mal wie das Plugin heißt, dann könnten wir auch reinschauen...

  • Entweder du postest hier mal den Inhalt dieser Funktion. Dann könnten wir schauen, ob es einen Hook gibt und wie der heißt.
    Oder du schaust in die Dokumentation des Plugins. Oder du sagt uns zumindest mal wie das Plugin heißt, dann könnten wir auch reinschauen...

    es handelt sich um dieses plugin: https://de.wordpress.org/plugins/awesome-team-showcase/
    das es nachher nicht mehr updatefähig ist, stört mich nicht.

    danke fürs nachschauen!


  • das es nachher nicht mehr updatefähig ist, stört mich nicht.

    Sollte es aber eigentlich ;-)

    Aber wenn es dich nicht stört (und du, wie du sagst, eh schon Dinge geändert hast), kannst du einfach folgendes machen:

    Änder Zeile 180 von

    Code
    return $team_members_output;

    in

    Code
    return do_shortcode($team_members_output);

    Einen Hook für einen möglichen Filter/Hook kann ich übrigens nicht entdecken, so dass dir in dem Fall vermutlich auch eh nicht viel anderes übrig bleibt (außer ggf. den Support des Plugins zu fragen bzw. zu bitten, einen Hook zu ergänzen).

Jetzt mitmachen!

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