plugin aufrufen in functions.php

  • Hallo zusammen,

    blöde Frage aber ich komme einfach nicht weiter.

    habe in meiner functions.php eine funktion die ich gerne erweitern möchte.

    PHP
    add_filter('profile_hook_mytab', 'profile_hook_mytab');
    function profile_hook_mytab( $output ){
      ob_start();
      
      echo "<div>tabcontent</div>"
      
      $output .= ob_get_contents();
      ob_end_clean();
      return $output;
    }

    Ich möchte jetzt statt statischem html, also dem "<div>tabcontent</div>" gerne ein plugin anziehen ... geht das überhaupt?

    Habe es schon über do_shortcode versucht und auch bereits gegoogelt ob ich hier nicht eine template page anziehen kann wo wiederum das plugin angezogen wird aber jeder Versuch verlief erfolglos.

    Bin über jeden Tip dankbar!

    Schönen Abend und Gruß,
    Tom

    • 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

  • Was soll "Plugin anziehen" bedeuten? Wenn ich das richtig verstehe versuchst Du eine andere Ausgabe abzufangen und auszugeben. Output Buffering ist die denkbar schlechteste Methode und solange wie möglich zu verhindern. Soll die Ausgabe eine lokalen Plugin abgefangen werden ist es schlauer dessen Ausgaberoutine direkt aufzurufen (wenn möglich). Wenn man wüsste was Du genau vor hast könnte man möglicherweise helfen.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Hallo,

    ja Du hast recht ich hab mich undeutlich ausgedrückt ... sorry!

    Du hast es aber dennoch richtig erfasst, ich habe eine plugin das die letzten drei posts anzeigt. Dann habe ich noch ein weiteres plugin wo mittels der "profile_hook_mytab" ein tab hinzugefügt wird. Die Ausgabe vom ersten plugin hätte ich jetzt gerne in dem "tabcontent" vom zweiten plugin.

    Somit habe ich keine Möglichkeit, wenn ich Dich richtig verstande habe, die Ausgaberoutine direkt aufzurufen da ich nur über den hook das andere plugin mit einem tab erweitern kann. Oder?

    Gruß, Tom

  • Warum so kompliziert? Die letzten 3 Posts kann man doch auch direkt ausgeben:

    Code
    $posts = wp_get_recent_posts( array( 'numberposts' => '3' ) );
    foreach( $posts as $post ){
    	echo '<div><a href="' . get_permalink( $post["ID"] ) . '">' . $post[ "post_title" ] . '</a></div> ';
    }

    Dafür braucht es weder Output Buffering noch sonst etwas.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Erstmal danke für deine Hilfe!

    Das ist mir klar aber bei dem plugin mit den posts ist leider noch sehr viel mehr dahinter, nicht nur die reine Anzeige, deshalb lässt sich das so ohne weiteres nicht einfach nachprogrammieren, für eine normale post Ausgabe hätte ich auch kein fremd-plugin eingesetzt. Würde es Dir gerne zeigen aber aktuell läuft das ganze nur bei mir lokal.

    Zum Thema Output Buffering habe ich mich schon ein wenig eingelesen und ich verstehe auch warum man das nicht macht allerdings ist mir mittlerweile jede Lösung recht solange ich das plugin wiederverwenden kann :cry: Bitte nicht falsch verstehen, will nicht "pfuschen" steh nur grad mit dem Rücken an der Wand.

    Habe es aber auch schon damit versucht und bin gescheitert ... Hilfe!

  • Ohne Details kann ich nicht helfen. Du musst die Ausgabe Routine des anderen Plugins verwenden oder Du erweiterst das andere Plugin (wenn es eine Klasse ist). Da Du aber kein Programmierer zu sein scheinst ist das eine ziemliche Herausforderung.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Kein Thema mehr, hab's hinbekommen. War ehrlich gesagt auch keine Herausforderung, eigentlich sogar total einfach aber ab und zu verrennt man sich einfach. Für alle die es interessiert, habe die Klasse vom plugin einer globalen Variablen zugewiesen, diese dann in der functions.php angezogen und dann über Variable die output funktion aufgerufen.

    Ob das den "Programmier Richtlinien" entspricht weiß ich nicht ... es funkt (-:

    Dennoch Danke für dein Hilfe!


  • Ob das den "Programmier Richtlinien" entspricht weiß ich nicht ... es funkt (-:

    Ja WordPress selbst verwendet globale Variablen allen Ecken und Enden. Schande! Klar das ist bequem aber es macht den Code anfällig. Man kann globale Variablen jederzeit überschrieben und dann wir das Debugging echt lustig.

    Du hast meinen Ansatz übernommen (Ausgaberoutine des anderen Plugin verwenden) aber das sollte eben besser über den Klassennamen erfolgen anstatt einer globalen Variable.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

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