Hinzufügen von PHP / HTML-Code innerhalb einer Seite aus einer benutzerdefinierten Vorlage

Ich helfe meinem Sohn mit seiner Finanzseite mit einigen benutzerdefinierten Programmierung. Das erste Projekt für ihn ist eine benutzerdefinierte Tabelle mit jQuery, Flot, PHP usw.

Ich habe ein Kindthema erstellt, eine Vorlage, functions.php, Stylesheet usw. erstellt, die alle gut funktionieren – solange sich die Tabelle am Ende der Seite befindet. Aber jetzt versuche ich, es zu verbessern, indem ich die Fähigkeit hinzufüge, Text sowohl vor als auch nach der Tabelle hinzuzufügen.

Meine erste Idee war, dass ich vielleicht einen Shortcode verwenden könnte, aber ich weiß nicht, ob das der richtige Weg ist. Es scheint, dass Shortcodes nicht für die Ausgabe großer Mengen von gemischtem PHP / HTML gedacht sind. Ich kann die Datei einschließen und eine function in der Tabellenkalkulationsdatei aufrufen, und das funktioniert, aber der Shortcode hat bisher nichts anderes getan, als den eigentlichen Shortcode selbst auszudrucken. Aber wenn es eine falsche Methode ist, möchte ich keine Zeit verschwenden, um es zum Laufen zu bringen.

Irgendwelche Ideen wie ich das machen kann? Ich nehme an, dass ich the_post () manuell parsen und einen Shortcode selbst verarbeiten könnte, aber ich würde es hassen, das zu tun, wenn es eine Methode gibt, die ich verwenden kann.

Mehr Info
Ich habe versucht, mit Shortcodes zu experimentieren. In meiner functions.php (die ich benutze, weil ich einige Javascript und CSS-Dateien lade):

function register_shortcodes() { add_shortcode('spreadsheet_placeholder', 'display_spreadsheet'); } add_action( 'init', 'register_shortcodes'); 

Ich habe ein Tag [Tabellenkalkulator] in die Mitte einer Seite gesetzt und die Seite mit diesem Tag in der Mitte gerendert. Bis heute hat es nur das Tag angezeigt, aber gerade jetzt habe ich die gute Idee, die externe PHP-Datei mit der function (display_spreadsheet) einzubinden.

Ich habe die Tabelle nach dem Einbinden der PHP-Datei angezeigt, nur nicht so, wie ich es wollte. Aber es hat funktioniert. Es wurde nur über dem Inhalt und nicht in der Mitte angezeigt. Ich hatte gelesen, dass ich die Daten zurückgeben muss, nicht nur direkt ausgeben, also habe ich so etwas erwartet.

Ich habe versucht, eine nowdoc-Variable zu verwenden, um die gesamte function in einer Variablen zu speichern, aber ich denke, dass dies zu optimistisch ist (vielleicht sehr), da ich PHP und HTML mit PHP-Tags gemischt habe, also würde ich wohl darauf eingehen müssen Der PHP-Code und speichern Sie es als mehrere Variablen und verketten sie zusammen, um den gesamten Code zurückzugeben. Aber das ist mehr ein PHP-Problem als WordPress, denke ich.

An dieser Stelle bin ich mir nicht sicher, was einfacher ist – das zu tun oder selbst nach einem Shortcode-ähnlichen Tag im Inhalt der Seite zu suchen und die Logik im Code zu machen.

Die Lösung

Danke an bonger und Brad Dalton für die Hilfe mit ob_start (), etwas das ich noch nie benutzt habe.

Ich habe meinen originalen php / html Code aus der Datei genommen und in eine separate Datei innerhalb einer function eingefügt. Ich habe diese Datei in functions.php eingefügt und die Shortcode-Registrierung auf die function gerichtet. Dann habe ich am Beispiel von Brad die gesamte Datei am Ende zurückgegeben und alles hat perfekt funktioniert.

Danke euch beiden. Ich bin glücklich mit den Ergebnissen, und mein Sohn auch.

Solutions Collecting From Web of "Hinzufügen von PHP / HTML-Code innerhalb einer Seite aus einer benutzerdefinierten Vorlage"

So programmieren Sie den Shortcode

 function foobar_func( $atts ){ return "foo and bar"; } add_shortcode( 'foobar', 'foobar_func' ); 

Und um eine function mit Ausgabepufferung auszuführen

 add_shortcode( 'shortcode_tag', 'function_name' ); function function_name($atts) { ob_start(); // Add your code $var = ob_get_contents(); ob_end_clean(); return $var; }