Apakah ada cara untuk meletakkan javascript di bagian URL dari item menu WordPress? Saya memiliki fungsi obrolan langsung di situs saya, dan saya harus memasukkan kode ini ke situs untuk membuat tautan untuk membuka obrolan langsung (seperti yang disarankan di sini).
<!-- BEGIN OLARK CHAT LINK -->
<a href="javascript:void(0);" onclick="olark('api.box.expand')">
Click here to chat!
</a>
<!-- END OLARK CHAT LINK -->
Klien menginginkan tautan di bilah utilitas, yang dibuat menggunakan menu WordPress di dasbor WordPress. Tetapi ketika saya menyalin dan menempel javascript:void(0);" onclick="olark('api.box.expand')
ke kotak URL di dashboard WordPress, itu hanya menghilang dan tautannya tetap tidak aktif.
Sesuatu yang saya baca mengatakan bahwa mungkin saya bisa meletakkan kelas khusus pada tautan yang dimaksud dan kemudian menulis fungsi Javascript yang menyala ketika tautan dengan kelas itu diklik. Saya mencobanya, dan saya tidak bisa membuatnya bekerja. Saya tidak tahu banyak Javascript, jadi mungkin saya menulis itu sepenuhnya salah.
Adakah yang tahu bagaimana melakukan ini? Saya ingin melakukannya tanpa menggunakan plugin.
sumber
onclick
atribut untuk mengeksekusi javascript.click()
acara jQuerysonclick
atribut. Saya akan melihat ke atas.click()
.Jawaban:
Bagus, itu berhasil. Jika itu untuk klien atau jika Anda hanya ingin kode pembersih, Anda dapat melakukannya seperti yang disarankan @Tom J Nowell.
Tambahkan item menu kustom, tautkan ke mana pun atau di mana pun. Cari tahu ID item menu (setiap item memiliki satu), lalu targetkan ID itu dengan jQuery.
Dengan cara ini, setiap kali pengguna mengklik bahwa
menu-item
skrip di atas akan dipicu. Anda dapat membuat skrip jquery melalui functions.php.Memperbarui:
Pastikan olark.js Anda memuat. Jika Anda menambahkannya ke footer atau header, periksa halaman Anda dan pastikan skrip ada di sana. Juga, pastikan Anda tidak mendapatkan kesalahan apa pun di konsol browser.
Bungkus js Anda dengan dokumen siap, sehingga skrip dijalankan pada waktu yang tepat:
Fakta bahwa tautan tidak memuat berarti ada yang salah dengan skrip itu sendiri atau skrip tidak memuat sama sekali.
sumber
#
(karena di situlah saya mengaturnya di dashboard Wordpress). Ini yang saya masukkan ke olark.js:$("#menu-item-38872").on("click", function(e){ e.preventDefault(); // olark code here olark('api.box.expand'); });
Apa yang saya lakukan salah?jQuery(document).ready(function($) {
berhasil! Terima kasih, @ gdaniel!Solusi # 1 (tidak ideal, tetapi berfungsi):
Solusi # 2 (ideal):
Dengan bantuan komentar di atas, berikut adalah solusi yang bekerja untuk saya. Saya membuat file baru bernama olark.js dan memasukkan kode ini di dalamnya:
Kemudian, saya membuat skrip di functions.php saya dengan kode berikut:
Jika tidak berhasil, pastikan Anda membuat skrip dengan benar. Saya menggunakan tema anak, jadi saya harus menggunakan
get_stylesheet_directory_uri()
bukanget_template_directory_uri()
.sumber
Saya pikir ada opsi 'lebih dapat diandalkan'. Mengandalkan nomor item menu tidak dijamin untuk bekerja jika Anda memigrasi kode Anda dari pengembangan ke produksi misalnya. Jika Anda mengubah nomor menjadi pengaturan, ini menjadi lebih baik, tetapi masih tidak terlalu bagus.
Alternatifnya bisa dengan menautkan ke jangkar yang tidak ada, seperti #olark, dari menu-item Anda. Ini dapat diatur menggunakan antarmuka pengguna dan merupakan lingkungan yang dapat diandalkan. Maka skrip terpisah Anda harus mengamati perubahan-hash (di bilah alamat browser) dan bertindak sesuai.
Contoh skrip kopi sederhana yang dikompilasi ke dalam javascript yang mendengarkan hashchange:
@showLogin
adalah fungsi yang menampilkan dialog yang memungkinkan Anda masuk jika hash sama dengan '#login'.Cukup lucu, hash di alamat tidak berubah jika Anda mengklik item menu. Ini tidak terduga dan bisa disebabkan oleh skrip lain yang mencegah acara default. Jadi saya harus menambahkan baris lain, untuk membuat perubahan lokasi jendela sebagai tanggapan terhadap mengklik tautan:
[/ edit]
sumber
Anda dapat menggunakan ini untuk functions.php untuk menambahkan skrip tambahan di item menu-nav
sumber