get_page_template()
dapat diganti melalui page_template
filter. Jika plugin Anda adalah direktori dengan templat sebagai file di dalamnya, itu hanya masalah meneruskan nama-nama file ini. Jika Anda ingin membuatnya "on the fly" (sunting di area admin dan simpan di database?), Anda mungkin ingin menulisnya ke direktori cache dan merujuknya, atau menghubungkannya template_redirect
dan melakukan beberapa eval()
hal gila .
Contoh sederhana untuk plugin yang "mengarahkan" ke file di direktori plugin yang sama jika kriteria tertentu benar:
add_filter( 'page_template', 'wpa3396_page_template' );
function wpa3396_page_template( $page_template )
{
if ( is_page( 'my-custom-page-slug' ) ) {
$page_template = dirname( __FILE__ ) . '/custom-page-template.php';
}
return $page_template;
}
Overriding
get_page_template()
hanyalah peretasan cepat. Itu tidak memungkinkan templat untuk dipilih dari layar Admin dan halaman siput-kode ke dalam plugin sehingga pengguna tidak memiliki cara untuk mengetahui dari mana templat berasal.Solusi yang disukai adalah dengan mengikuti tutorial ini yang memungkinkan Anda untuk mendaftarkan templat halaman di back-end dari plug-in. Kemudian berfungsi seperti template lainnya.
sumber
Ya itu mungkin. Saya menemukan contoh plugin ini sangat membantu.
Pendekatan lain yang muncul di kepala saya adalah menggunakan WP Filesystem API untuk membuat file templat dengan tema. Saya tidak yakin itu adalah pendekatan terbaik untuk dilakukan, tetapi saya yakin itu berhasil!
sumber
Tidak ada jawaban sebelumnya yang berfungsi untuk saya. Di sini satu tempat Anda dapat memilih templat di admin Wordpress. Masukkan saja ke dalam file plugin php utama Anda dan ubah
template-configurator.php
dengan nama templat Andasumber