Chcę utworzyć formularz, którego można użyć za pomocą krótkiego kodu do wstawienia na mojej stronie.
Byłoby naprawdę miło, gdybym mógł utworzyć część HTML w osobnym pliku, a następnie wstawić ją za pomocą krótkiego kodu PHP (aby oddzielić logikę strony od mechaniki przekształcania jej w krótki kod).
Jak mogłem to zrobić?
-- Aktualizacja --
Oto co zrobiłem: mam dwa pliki. Jeden o nazwie „profiletemplate.php” i drugi o nazwie „scodes”. Oba są częścią wtyczki, którą tworzę dla mojej witryny za pomocą pliku init.php, który je inicjuje. Oto ich treść:
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>
Następnie używam skrótu [testfield] na stronie w mojej witrynie.
Aktualizacja 2
Więc ta metoda działa, ale nie wstawia kodu HTML, w którym wywoływany jest shortcode. Zamiast tego po prostu wstawia treść na górze strony (tak jak gdybym powiedział „echo” Testowanie ”zamiast„ return ”Testowanie w funkcji.
functions.php
która wymaga / zawiera ten określony plik, iadd_shortcode()
ustawić żądany skrót do wywołania funkcji.Odpowiedzi:
Coś zapomniałem w poprzednim komentarzu, że skróty zwracają treść, zarówno sugerowana, jak
include
i moja alternatywaget_template_part
będą bezpośrednio wyświetlać treść (to, co widzisz, gdy treść pojawia się u góry strony zamiast tego, gdzie nazywany jest shortcode). Aby temu przeciwdziałać, musimy użyć buforowania wyjściowego .Zdefiniuj krótki kod w pliku functions.php (lub w pliku funkcji specyficznym dla witryny ).
Następnie w folderze motywu potrzebujesz pliku o nazwie,
my_form_template.php
który zostanie załadowany w dowolnym miejscu, w którym umieścisz krótki kod.źródło
Dodaj następujące funkcje do swojego functions.php :
Plik my_form_template.php :
źródło
get_template_part()
wewnątrz funkcji shortcode.