Saya melakukannya sekarang dengan kode berikut:
function uw_load_scripts() {
// De-register the built in jQuery
wp_deregister_script('jquery');
// Register the CDN version
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
// Load it in your theme
wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'uw_load_scripts' );
Ini berfungsi, tetapi haruskah saya melakukan ini untuk semua orang, seperti ini, atau untuk semua orang selain admin (sehingga backend menggunakan versi WordPress?):
if (function_exists('load_my_scripts')) {
function load_my_scripts() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
wp_enqueue_script('jquery');
}
}
}
add_action('init', 'load_my_scripts');
Versi ini sebenarnya tidak berfungsi sama sekali, saya mendapatkan versi WordPress jQuery dan bukan versi Google.
Karena itu, haruskah saya membatalkan pendaftaran jQuery yang termasuk dalam WordPress?
Juga, bagaimana cara menambahkan skrip saya sendiri (skrip slider, modernizr dan custom.js saya sendiri) dengan cara yang benar? Saya kira saya harus melakukan ini melalui functions.php juga dan tidak di header seperti yang saya lakukan sekarang, tapi saya tidak yakin bagaimana saya akan melakukannya.
wp_enqueue_script()
panggilan.$in_footer
parameter ke true dalam panggilan Anda kewp_enqueue_script()
.Semoga ini bisa membantu, lihat kodeks untuk
wp_enqueue_scripts
informasi lebih lanjut.init
untuk enqueue . Gunakanwp_enqueue_scripts
untuk hal-hal front-end danadmin_enqueue_scripts
untuk sisi admin. Anda dapat menggunakannyainit
untuk mendaftar skrip.wp_enqueue_scripts
hanya menyala di front-end (dan bukan di halaman login) - jadi Anda tidak perlu memeriksais_admin()
.Kecuali Anda memiliki alasan khusus untuk melakukan sebaliknya, saya sarankan mendaftar dan mengantri skrip yang digunakan
functions.php
untuk tema atau dalam plug-in sebaliknya. Anda cukup menempatkan:Jika tujuannya adalah untuk membuat skrip ketika kode pendek digunakan, Anda mungkin ingin menggunakan
wp_enqueue_script
panggilan balik kode pendek untuk mengantre hanya jika diperlukan (ini akan mencetaknya di footer sejak 3.3 ).Anda tidak boleh mendaftar ulang jQuery yang ada di sisi admin. Anda dapat merusak sesuatu: D.
Plug-in tidak boleh mendaftar ulang jQuery yang ada.
Anda harus mempertimbangkan pro dan kontra mendaftar ulang jQuery. Misalnya itu dapat merusak beberapa plug-in jika Anda mendaftarkan versi lama (mungkin tidak sekarang, tetapi di masa depan ...)
sumber
Peringatan yang adil: membatalkan jQuery versi WP yang dipaket dan mendukung masalah Anda sendiri dapat menyebabkan masalah, terutama jika Anda tidak ekstra hati-hati untuk memastikan bahwa Anda mengubah versi yang Anda tuju setiap kali WP memperbarui versinya. Ini berlaku dua kali lipat untuk plugin, yang sering (atau sering harus, setidaknya) menulis plugin mereka untuk kompatibilitas maksimum dengan versi WP dari jQuery.
Yang mengatakan, versi pertama Anda sudah benar - itu terhubung ke
wp_enqueue_scripts
. Fungsi kedua Anda terhubunginit
, yang mungkin mengapa itu tidak berfungsi dengan baik.Tambahkan skrip Anda sendiri dengan cara yang serupa:
Saya berasumsi di sini bahwa Anda memuat skrip dari
js
direktori di direktori tema Anda saat ini; ubah parameter URI jika itu tidak benar. Parameter ketigaarray( 'jquery' )
mengatakan itubbg-scripts
tergantungjquery
, dan karenanya harus dimuat sesudahnya. Lihat https://codex.wordpress.org/Function_Reference/wp_enqueue_script untuk lebih jelasnya.sumber
Ini tidak akan melakukan apa-apa ... Saya kira maksud Anda
Contoh Anda hanya akan memuat fungsi load_my_scripts jika sudah ada (yang tidak jadi tidak mau dan jika itu akan membuat kesalahan)
sumber
Jika, karena alasan kinerja, Anda ingin memuat jquery dan file js-core lainnya dari CDN, pastikan Anda memuat versi yang sama untuk mencegah hal-hal buruk terjadi dengan fungsi-fungsi inti dan plugin. Seperti ini:
sumber
Setelah memeriksa semua metode yang berbeda untuk memuat jquery (tidak hanya pada posting ini), saya menyadari bahwa tidak satupun dari mereka melakukan semua ini:
Ada banyak versi alternatif yang melakukan beberapa hal ini dalam daftar, tetapi tidak semua, jadi saya menulis versi saya menyisir dan memodifikasi beberapa metode yang sudah tersedia. Ini dia:
Untuk menghemat bandwidth dan tidak melakukan ping ke Google setiap kali halaman dimuat ulang, ia mengingat apakah Google CDN sedang online atau tidak selama 5 menit menggunakan Wordpress Transient API.
sumber