Ini adalah hari yang menyedihkan di dunia ketika saya Google sesuatu dan tidak menghasilkan apa-apa. Saya mencoba menggunakan datepicker default (atau datepicker APAPUN pada saat ini) dan saya tidak dapat melakukannya karena kurangnya pengetahuan saya dengan Wordpress / PHP. Dalam plugin saya, saya mencoba mendaftar jquery dan ui dan tampaknya saya melanggar bagian lain dari WordPress dalam proses. Dapatkah seseorang tolong beri tahu saya apa yang saya lakukan salah dan jika mereka dapat memberikan solusi yang berfungsi, saya akan memo semua kode saya:
add_action('init', 'add_styles');
function add_styles(){
wp_deregister_style('simpleschoolstyles');
wp_register_style('simpleschoolstyles', SSM_STYLEFILE);
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js');
wp_deregister_script( 'jquery-ui' );
wp_register_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js');
wp_deregister_style( 'jquery-ui' );
wp_register_style( 'jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/pepper-grinder/jquery-ui.min.css' );
wp_deregister_script('maskedinput');
wp_register_script('maskedinput', SSM_PLUGIN_URL . '/includes/js/jquery.maskedinput.min.js');
wp_deregister_script('simpleschool');
wp_register_script('simpleschool', SSM_PLUGIN_URL . '/includes/js/simpleschool.js');
}
add_action('wp_enqueue_scripts', 'load_scripts');
add_action('admin_enqueue_scripts', 'load_scripts');
function load_scripts()
{
wp_enqueue_style('jquery-ui');
wp_enqueue_style('simpleschoolstyles');
wp_enqueue_script('jquery');
wp_enqueue_script('jquery-ui');
wp_enqueue_script('maskedinput');
wp_enqueue_script('simpleschool');
}
Saya perlu jQuery tersedia di area admin serta front-end untuk entri data pengguna. Tolong seseorang bantu. Saya hampir saja mencabut kuku kaki saya karena saya sudah merobek semua rambut saya ... Saya berasumsi bahwa saya harus enqueue pada titik waktu yang salah, tetapi sekali lagi, karena pengetahuan saya yang terbatas tentang WordPress, saya telah menggali sendiri kuburan dengan cepat.
UPDATE: Saya memodifikasi skrip saya dan sekarang hanya memuat jQuery UI dan telah menguji bahwa jQuery dan UI sama-sama dimuat dan sukses untuk keduanya, tetapi bukan objek yang ada di DOM:
add_action('init', 'init_scripts');
function init_scripts(){
wp_deregister_style('simpleschoolstyles');
wp_register_style('simpleschoolstyles', SSM_STYLEFILE);
//wp_deregister_script( 'jquery-ui' );
wp_register_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js');
//wp_deregister_style( 'jquery-ui' );
wp_register_style( 'jquery-ui-pepper-grinder', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/pepper-grinder/jquery-ui.min.css' );
//wp_deregister_script('maskedinput');
wp_register_script('maskedinput', SSM_PLUGIN_URL . '/includes/js/jquery.maskedinput.min.js');
//wp_deregister_script('simpleschool');
wp_register_script('simpleschool', SSM_PLUGIN_URL . '/includes/js/simpleschool.js');
wp_enqueue_style('jquery-ui-pepper-grinder');
wp_enqueue_style('simpleschoolstles');
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-ui' );
wp_enqueue_script('simpleschool');
}
Tes saya:
jQuery(document).ready(function(){
//jQuery('.datepick').mask("99/99/9999");
//jQuery('.phone').mask("(999) 999-9999");
jQuery( '.datepick' ).datepicker( 'option', 'dateFormat', 'yyyy-mm-dd' ); // <-- this fails ????
alert('jQuery BETTER BE LOADED!!!'); // <---this worked
jQuery('<div>crazy wordpress and their php</div>').dialog(); // <--- this worked too
});
sumber
ajax.googleapis.com
.Jawaban:
Karena semua perpustakaan yang Anda butuhkan untuk datepicker dibundel dengan WordPress dan terdaftar dengan semua dependensi yang sesuai, yang perlu Anda lakukan adalah:
Jika kemudian Anda melihat sumber halaman Anda akan melihat bahwa jQuery, jQuery-UI, dan jQuery-UI-Datepicker semuanya dimuat.
Tentu saja, Anda perlu memuat skrip lain sendiri dengan cara yang sudah Anda lakukan, meskipun Anda harus mendaftarkannya dengan dependensinya - parameter ketiga.
Sebagai contoh...
Dengan begitu, Anda bisa memuatnya dengan ...
... dan tahu bahwa dependensi - jQuery - akan dimuat juga.
sumber
wp_enqueue_scripts
- akan dimuat di mana saja di ujung depan, tidak termasuk halaman login. Tetapi Anda benar-benar ingin memuat skrip hanya pada halaman tertentu yang membutuhkannya sehingga Anda dapat memodifikasi panggilan balik itu agar lebih spesifik halaman. Untuk penggunaan backendadmin_enqueue_scripts
tetapi sekali lagi, Anda benar-benar hanya ingin memuatnya di mana diperlukan. Ada beberapa kait khusus halaman di backend. Saya tidak bisa mengatakan mana yang Anda butuhkan tanpa mengetahui di mana Anda membutuhkan skrip.Untuk melengkapi jawaban luar biasa @ s_ha_dum , berikut adalah contoh yang menunjukkan cara menggunakan pemilih tanggal UI jQuery bawaan pada halaman plugin Anda.
Hasilnya akan terlihat seperti ini:
Unduh di GitHub .
Bagian terpenting:
datepicker({ dateFormat: "yy-mm-dd" })
, sehingga Anda tahu apa yang diharapkan dalam penangan panggilan balik Anda.Saya membangun kelas dasar terlebih dahulu untuk memiliki sesuatu yang dapat saya gunakan dalam jawaban lain juga dan untuk menjaga kode aktual untuk skrip pemilih tanggal spesifik dan sederhana.
Kelas dasar
Wpse_Plugin_Options_Page
Sekarang kita harus mendefinisikan ulang hanya bagian yang paling penting. Bagus dan pendek.
Kelas khusus
Wpse_Datepicker_Example
Masih ada banyak ruang untuk perbaikan, tetapi sebagai awalnya harus bermanfaat.
sumber
Ada beberapa cara untuk memasukkan jQuery ke dalam tema. Saya selalu menggunakan versi bundel WP yang saya temukan sangat sederhana. Untuk mengatur segalanya dengan benar, kita perlu memastikan bahwa halaman WP akan memiliki file-file berikut untuk dimasukkan dalam pemuatan halaman. Untuk memuat bellow script & style tambahkan bellow kode pada file functions.php tema.
Script untuk penggunaan front-end
Script untuk penggunaan back-end
Kita dapat menulis sebuah fungsi untuk dihubungkan ke halaman tertentu, seperti halaman single.php, halaman atau plugin. Saya telah menambahkan atau mengaitkan pada 'options-general.php' untuk tampilan pada Settigns-> Date Picker . Masukkan saja kode ini juga file funtions.php atau di bawah kode tersebut.
Setelah menambahkan kode ini, Anda akan mendapatkan pemilih tanggal di Menu Admin-> Setuju-> Pemilih Tanggal . Jika Anda memerlukan bantuan untuk mendapatkan opsi ini, tanyakan pertanyaan apa pun dengan memberikan komentar pada Tambahkan jQuery DatePicker ke WordPress Theme atau Plugin .
sumber