get_template_directory () vs bloginfo ('template_directory') vs TEMPLATEPATH


16

Saya membaca artikel ini: Kesalahan Umum Pengembangan WordPress dan Cara Memperbaikinya , dan di dalamnya, mereka berkata:

Mendapatkan lokasi tema: Jika Anda menggunakan TEMPLATEPATH atau bloginfo ('template_directory'). Berhenti! Anda harus menggunakan get_template_directory () yang sangat berguna seperti yang terlihat pada contoh saya di atas.

Tapi dia tidak merinci. Apa yang buruk tentang itu bloginfo()?

Jawaban:


17

Untuk membuat cerita panjang pendek: get_bloginfo( 'template_directory' )dan get_bloginfo( 'template_url' )cukup kembali get_template_directory_uri().

Jadi, Anda dapat membuat pintasan panggilan kedua itu hanya dengan merujuk langsung ke tag templat yang terakhir.

Lihat sumber untukget_bloginfo() .

Beberapa lainnya:

  • 'url' => home_url()
  • 'wpurl' => site_url()
  • 'stylesheet_url' => get_stylesheet_uri()
  • 'stylesheet_directory' => get_stylesheet_directory_uri()
  • 'locale' => get_locale()

Edit

Perhatikan juga: TEMPLATEPATHdan STYLESHEETPATHdijadwalkan untuk penghentian , jadi Anda lebih baik hanya menggantinya sekarang, dengan get_template_directory()dan get_stylesheet_directory(), masing-masing.

Edit 2

Re: komentar ini

Hanya apa yang akan saya katakan :). Saya akan menambahkan yang get_template_directory()mengembalikan path dan get_template_directory_uri()url. Jadi pengarangnya tidak konsisten: get_bloginfo( 'template_directory' )dan get_template_directory()kembalikan hal yang berbeda!

Rujuk kembali ke sumber :)

case 'template_directory':
case 'template_url':
    $output = get_template_directory_uri();
    break;

Re: komentar ini:

Satu peringatan ketika mengembangkan tema anak Anda harus menggunakan get_stylesheet_directory()secara eksplisit. Seseorang mengoreksi saya jika saya salah.

Benar, tapi itu selalu terjadi. get_bloginfo()tidak mengembalikan apa pun yang terkait dengan get_stylesheet_directory(). Hanya mengembalikan get_stylesheet_uri()dan get_stylesheet_directory_uri().


Satu peringatan ketika mengembangkan tema anak Anda harus menggunakan get_stylesheet_directory () secara eksplisit. Seseorang mengoreksi saya jika saya salah.
— Steve

Terima kasih! Saya hanya ingin tahu mengapa WP memiliki begitu banyak fungsi yang hanya memanggil fungsi lain, sehingga kita seharusnya tidak menggunakan ...
— coopersita

Dalam hal ini, saya pikir alasannya adalah hanya untuk menjaga kompatibilitas ke belakang ke get_bloginfo()parameter.
— Chip Bennett
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.