Saya ingin memeriksa templat yang sesuai di folder tema sebelum kembali ke file di direktori plugin saya. Ini kode saya:
add_filter ('template_include', 'sermon_template_include'); function sermon_template_include ($ template) { if (get_query_var ('post_type') == 'wpfc_sermon') { if (is_archive () || is_search ()): if (file_exists (TEMPLATEDIR. '/archive-wpfc_sermon.php')) kembalikan TEMPLATEDIR. '/archive-wpfc_sermon.php'; return dirname (__ FILE__). '/views/archive-wpfc_sermon.php'; lain : if (file_exists (TEMPLATEDIR. '/single-wpfc_sermon.php')) kembalikan TEMPLATEDIR. '/single-wpfc_sermon.php'; return dirname (__ FILE__). '/views/single-wpfc_sermon.php'; berakhir jika; } mengembalikan $ template; }
Masalahnya, itu tidak berhasil! :-) Selalu mengambil file di folder plugin saya. Ada ide untuk dilakukan? Saya sudah mencoba banyak variasi tetapi sepertinya saya tidak bisa mendapatkan apa-apa untuk bekerja! Terima kasih sebelumnya! Mendongkrak
EDIT
Saya berharap arsip-wpfc_sermon.php dikembalikan dari folder tema jika ada. Namun, file dari plugin saya selalu dikembalikan. Terima kasih atas bantuan Anda! Ini dari plugin Khotbah Manajer saya yang tersedia di repositori.
custom-post-types
template-include
Mendongkrak
sumber
sumber
Jawaban:
Jadi, saya tidak yakin persis apa yang menyebabkan masalah, tetapi Anda dapat mencoba yang berikut:
dirname(__FILE__)
denganplugin_dir_path( __FILE__ )
TEMPLATEDIR
denganget_stylesheet_directory()
Mungkin saja masalahnya datang dari merujuk konstanta secara langsung.
sumber
Saya tidak yakin apakah ini akan berhasil untuk Anda tetapi patut dicoba. Saya menggunakan ini sepanjang waktu untuk jenis posting khusus saya ketika mereka membutuhkan template khusus.
Yang harus Anda lakukan adalah menambahkan skrip ini di file functions.php Anda dan meletakkan file template di direktori tema Anda.
Ini layak dicoba dan mungkin tidak menyebabkan konflik dengan plugin Anda. Namun saya tidak yakin akan hal itu.
Saya lupa ... jangan lupa menambahkan tindakan. :)
sumber