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()?

coopersita
sumber

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().

Chip Bennett
sumber
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