Menggabungkan dan mengurangi ketergantungan untuk file JavaScript enqueued

8

Saya memuat file JavaScript menggunakan wp_enqueue_scripttema saya. Namun, seiring dengan itu, saya memuat beberapa file jQuery juga, sebagai dependensi untuk skrip enqueued (yang telah digabungkan dan diperkecil oleh Grunt). Ini kode saya:

add_action('wp_enqueue_scripts', function() {
    wp_enqueue_script( 'customscripts', get_template_directory_uri() . '/assets/js/main.min.js', array('jquery', 'jquery-form', 'json2', 'jquery-ui-autocomplete'), NULL, true );
});

Untuk larik dependensi, bagaimana cara menggabungkan dan mengurangi ketergantungan jQuery itu? Saya mencoba membuat situs saya memuat secepat mungkin, dan semakin sedikit file JS yang dimuat, semakin baik. Juga jika mungkin untuk membuatnya memuat secara tidak sinkron (menggunakan asyncproperti untuk <script>tag) yang akan menjadi kartu as.

Saya lebih suka melakukannya tanpa menggunakan plugin tetapi saya akan menggunakan plugin jika perlu.

Terima kasih atas bantuannya :)

Tom Oakley
sumber
3
File-file javascript pihak ketiga harus didaftarkan / enqueued oleh plugins sebagaimana adanya; tidak digabung, dimodifikasi atau dengan nama lain. Dengan cara ini, jika ada lebih dari satu plugin / tema yang menggunakan js pihak ketiga yang sama, Wordpress tidak akan memuat beberapa instance dari kode yang sama. Untuk mengambil keuntungan dari pengaturan dan penggabungan ini, penggabungan harus dilakukan dengan cepat dikombinasikan dengan sistem cache untuk menghindari penggabungan file untuk setiap kunjungan. Saya pikir pekerjaan ini terlalu banyak untuk dijawab di sini. Lihatlah W3 Total Cache; plugin ini menggabungkan, mengecilkan, cache hasil dan memuat file js async.
cybmeta
Seperti yang dikatakan @cybmeta, W3 Total Cache melakukan pekerjaannya, tetapi hati-hati dengan file js yang digabungkan. Beberapa skrip tidak siap untuk "bersama" di dalam file yang sama. Tapi santai juga, perubahan Total Cache W3 semuanya reversibel.
Rangel R. Morais
hei, terima kasih telah menjawab, W3 Total Cache bekerja dengan sangat baik untuk penggabungan dll, terima kasih atas sarannya (dan @cybmeta) :)
Tom Oakley
hei, terima kasih sudah menjawab dan maaf saya lupa menjawab. W3 Total Cache berfungsi dengan baik sekarang untuk ini, dan penjelasan Anda mengapa WordPress tidak melakukannya masuk akal total. Terima kasih!
Tom Oakley
1
Plugin ini juga bagus jika karena alasan tertentu Anda tidak ingin atau membutuhkan W3 Total cache wordpress.org/plugins/autoptimize
NickFMC

Jawaban:

1

W3 Total Cache menawarkan minifikasi JS / CSS. Saya tidak terbiasa dengan proses yang mereka gunakan, tetapi jika Anda ingin menghindari menggunakan plugin, Anda dapat melihat kode sumber mereka bagaimana mereka menanganinya.

Eric Holmes
sumber