Saya ingin membuat formulir yang bisa saya gunakan kode pendek untuk memasukkan ke situs saya.
Akan sangat menyenangkan jika saya dapat membuat bagian HTML dalam file terpisah dan kemudian memasukkannya dengan kode pendek PHP (untuk memisahkan logika halaman dari mekanisme pembuatannya menjadi kode pendek).
Bagaimana saya bisa melakukan ini?
- Perbarui -
Ini yang saya lakukan: Saya punya dua file. Satu disebut 'profiletemplate.php' dan satu disebut 'kode'. Keduanya adalah bagian dari plugin yang saya buat untuk situs saya dengan init.php yang menginisialisasi mereka. Berikut isinya:
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>
Saya kemudian menggunakan kode pendek [testfield] pada halaman di situs saya.
Perbarui 2
Jadi metode ini berfungsi, tetapi tidak memasukkan HTML di mana shortcode dipanggil. Sebaliknya itu hanya memasukkan konten di bagian atas halaman (seperti jika saya mengatakan 'gema' Pengujian '' alih-alih 'mengembalikan' Pengujian '' dalam suatu fungsi.
functions.php
yang memerlukan / menyertakan file tertentu ini, dan dengan caraadd_shortcode()
mengatur kode pendek yang Anda inginkan untuk memanggil fungsi Anda.Jawaban:
Sesuatu yang saya lupa di komentar saya sebelumnya adalah bahwa shortcode mengembalikan konten, baik yang disarankan
include
maupun alternatif sayaget_template_part
akan langsung menampilkan konten (yang Anda lihat dengan konten yang muncul di bagian atas halaman Anda, bukan di tempat kode pendek itu dipanggil). Untuk mengatasi ini kita harus menggunakan buffering output .Tentukan kode pendek di functions.php Anda (atau file fungsi khusus situs Anda ).
Kemudian di folder tema Anda, Anda memerlukan file bernama
my_form_template.php
yang akan dimuat di mana saja Anda menempatkan kode pendek.sumber
Tambahkan yang berikut ini ke functions.php Anda :
File my_form_template.php :
sumber
get_template_part()
di dalam fungsi kode pendek Anda.