Ich möchte ein Formular erstellen, das ich mit einem Shortcode in meine Site einfügen kann.
Es wäre wirklich schön, wenn ich den HTML-Teil in einer separaten Datei erstellen und ihn dann mit einem PHP-Shortcode einfügen könnte (um die Logik der Seite von der Mechanik der Umwandlung in einen Shortcode zu trennen).
Wie könnte ich das machen?
- Update -
Folgendes habe ich getan: Ich habe zwei Dateien. Eine mit dem Namen 'profiletemplate.php' und eine mit dem Namen 'scodes'. Sie sind beide Teil eines Plugins, das ich für meine Site mit einer init.php erstelle, die sie initialisiert. Hier ist ihr Inhalt:
init.php
<?php
require_once(dirname(__FILE__).'/pages/scodes.php');
?>
scodes.php
function jf_testcode() {
include dirname(__FILE__) . 'profiletemplate.php';
}
add_shortcode('testfield', 'jf_testcode');
profiletemplate.php
<?php // Template for my form shortcode ?>
<form>
Testing
</form>
Ich verwende dann den Shortcode [testfield] auf einer Seite meiner Site.
Update 2
Diese Methode funktioniert also, fügt jedoch nicht den HTML-Code ein, in dem der Shortcode aufgerufen wird. Stattdessen wird nur der Inhalt oben auf der Seite eingefügt (als ob ich in einer Funktion "Echo" -Test "anstelle von" Test "zurückgeben würde).
functions.php
, die diese bestimmte Datei benötigt / enthält, und mithilfe desadd_shortcode()
gewünschten Shortcodes Ihre Funktion aufrufen.Antworten:
Etwas , das ich in meinem vorherigen Kommentar vergessen war , dass Kurzwahlnummern zurückgeben Inhalt, sowohl die vorgeschlagene
include
und meine Alternativeget_template_part
direkt ausgibt den Inhalt (das , was Sie mit dem Inhalt zu sehen , am oberen Rande der Seite erscheinen , statt , wo der Shortcode genannt). Um dem entgegenzuwirken, müssen wir die Ausgabepufferung verwenden .Definieren Sie den Shortcode in Ihrer functions.php (oder in der Site-spezifischen Funktionsdatei Ihrer Site ).
Dann benötigen Sie in Ihrem Themenordner eine Datei namens,
my_form_template.php
die überall dort geladen wird, wo Sie den Shortcode platzieren.quelle
Fügen Sie Ihrer functions.php Folgendes hinzu :
Datei my_form_template.php :
quelle
get_template_part()
innerhalb Ihrer Shortcode-Funktion verwenden.