Beranda » WordPress » Cara Menggunakan Hook Tindakan WordPress di Kustomisasi Tema

    Cara Menggunakan Hook Tindakan WordPress di Kustomisasi Tema

    Tema WordPress anak memberikan cara yang relatif mudah untuk menyesuaikan tampilan dan nuansa tema. Jika opsi tema tidak memberi Anda pilihan desain yang memadai, Anda bisa menambahkan aturan baru ke file stylesheet default tema anak yang disebut style.css. Tetapi apa yang terjadi ketika Anda juga menginginkannya memodifikasi fungsionalitas tema? Itu adalah salah satu kasus ketika tindakan WordPress membantu Anda.

    WordPress telah menjadi sangat populer sebagian karena kemampuan penyesuaian yang tinggi. WordPress Core dimuat dengan berbagai kait yang memungkinkan pengembang memodifikasi atau meningkatkan fungsionalitas default. Selain itu, kami diizinkan untuk memasukkan kait khusus di tema dan plugin kami untuk membantu pengembang lain untuk dengan mudah menyesuaikan kode kami dengan kebutuhan mereka.

    Tentang WordPress Hooks

    Kait WordPress bekerja agak mirip dengan kait kehidupan nyata dalam arti bahwa Anda dapat menangkap ikan yang Anda inginkan di tempat yang tepat jika Anda menggunakannya dengan benar.

    Kamu bisa menghapus fungsi yang tertangkap (mis. Anda dapat menghapus bilah admin WordPress untuk pengguna tingkat rendah), Anda bisa biarkan itu utuh dan tingkatkan itu dengan fungsionalitas Anda sendiri (mis. Anda dapat menambahkan lebih banyak menu atau area widget ke suatu tema), atau Anda bisa menimpanya (mis. Anda dapat memodifikasi perilaku fungsi inti).

    Ada dua jenis kait di WordPress: tindakan dan filter. Dalam posting ini kita akan melihat bagaimana kita bisa Manfaatkan kait tindakan dalam kustomisasi tema.

    Cara Kerja WordPress Hooks

    Untuk menggunakan bahasa yang sangat sederhana, tindakan menunjukkan itu sesuatu telah terjadi selama siklus halaman WordPress: bagian-bagian tertentu dari situs telah dimuat, opsi atau pengaturan tertentu telah diatur, plugin atau widget telah diinisialisasi, dan sebagainya.

    Filter berbeda dari tindakan di alam mereka. Mereka terbiasa melewati data, dan memodifikasi, mengelola atau mencegat sebelum merendernya ke layar atau menyimpan data pengguna ke dalam basis data.

    Pada setiap tengara signifikan dari siklus halaman WordPress ada salah satu tindakan atau a filter kait yang kami bisa tambahkan kode khusus kami untuk mengubah perilaku default untuk kebutuhan kita.

    Tindakan dan filter tertentu yang berjalan selama permintaan bergantung pada halaman mana yang diminta oleh agen pengguna: misalnya dalam satu kait permintaan posting yang terkait dengan posting tunggal tersedia, tetapi kait yang terkait dengan bagian lain dari situs (misalnya area admin) tidak.

    Temukan Kait Aksi

    Referensi Tindakan dari WordPress Codex memberikan gambaran terperinci dari tindakan yang dijalankan melalui berbagai permintaan. Yang penting adalah bahwa jika kita ingin menyelesaikan tugas yang kita butuhkan menghubungkan ke tempat yang tepat, tidak sebelum atau sesudahnya, jika tidak tindakan tidak akan selesai.

    Jadi misalnya kalau kita mau tambahkan kode Google Analytics kami ke situs kita harus kaitkan aksi kami tepat sebelum footer dimuat.

    Jika kita berbicara tentang penyesuaian tema, kait tindakan dapat berasal dari dua tempat berbeda: dari WordPress Core dan temanya sendiri. Ada tema yang tidak memiliki kaitan sama sekali, tetapi yang lain menyediakan beberapa atau banyak pengembang - itu selalu menjadi pilihan pembuat tema. Tema Dua Puluh Lima Belas default hanya memiliki satu kait tindakan untuk penyesuaian footer dengan nama 'twentyfifteen_credits'.

    Jika Anda ingin menelusuri kode sumber, Anda juga dapat menemukan kait tindakan dengan mudah. Kait tindakan ditambahkan ke kode dengan fungsi WordPress do_action ().

    Jika Anda menjalankan pencarian cepat untuk ekspresi 'do_action' di editor kode yang lebih canggih - seperti yang saya lakukan di Eclipse di bawah ini - Anda dapat melihat daftar tentang tempat di mana Anda dapat mengaitkan fungsionalitas khusus ke inti. Saya mencari di / wp-termasuk / folder, tetapi Anda juga dapat menjalankan pencarian untuk / wp-admin / folder yang berisi kait tindakan yang terkait dengan dasbor WordPress (area admin).

    Hal yang baik adalah bahwa nama-nama kait tindakan biasanya cukup jelas, tetapi ada biasanya komentar yang bagus di dalam kode yang dapat memberi Anda lebih banyak pengetahuan apakah kait tindakan yang diberikan baik karena alasan yang ingin Anda gunakan.

    Misalnya komentar kode sebelum kait tindakan 'widgets_init' mengatakan itu “kebakaran setelah semua widget WordPress default telah didaftarkan”. Jika Anda mengintip kode sebelum kait tindakan ini, Anda dapat menemukan semua inisialisasi widget WP default sebelumnya - sehingga Anda dapat yakin bahwa komentar itu tidak berbohong, dan jika Anda ingin mendaftarkan widget kustom Anda sendiri, ini akan menjadi tempat yang tepat.

    Dalam banyak kasus, kode sumber memberi kami informasi lebih banyak daripada Codex, jadi bisa jadi ide bagus untuk mempelajari cara menavigasi dengan cepat di dalamnya..

    Tambahkan Tindakan Anda Sendiri

    Ketika Anda ingin menambahkan tindakan Anda sendiri, Anda harus melakukannya buat fungsi khusus dan ikat fungsi ini ke hook tindakan tertentu dengan menggunakan fungsi add_action () WordPress. Tindakan khusus yang ditambahkan dengan fungsi add_action () biasanya dipicu di tempat ketika core memanggil fungsi do_action () yang sesuai.

    Mari kita lihat contoh sederhana.

    Cara Menemukan Kait Tindakan Yang Anda Butuhkan

    Katakanlah Anda ingin menambahkan favicon khusus ke situs Anda. Pertama, Anda perlu menemukan hook tindakan yang tepat untuk mengikat fungsi Anda sendiri.

    Mari berfikir. Jika Anda ingin menambahkan favicon ke halaman HTML biasa, di mana Anda akan meletakkannya? Tentu saja, Anda harus meletakkannya di dalam bagian dari file HTML dengan markup berikut:

      

    Jadi hook tindakan yang Anda butuhkan harus terkait dengan pemuatan bagian.

    (1) Buka Referensi Tindakan, dan lihat apa yang ditawarkan. Kami beruntung, seolah-olah kami menelusuri tindakan, kami hanya dapat menemukan satu, wp_head, yang berdasarkan namanya memiliki kemungkinan terkait dengan pemuatan bagian.

    (2) Yang pasti, mari periksa dokumentasi di WordPress Codex. Codex menyarankan itu “Anda menggunakan pengait ini dengan meminta output gema fungsi Anda ke browser”, jadi saat ini sepertinya itu sempurna untuk kita. Tapi mari kita periksa di kode sumber.

    (3) Karena pengait ini tidak terkait dengan area admin, kami perlu menjalankan pencarian di / wp-termasuk / map. Jika kita mencari kata 'wp-head' kita akan mendapatkan banyak hasil karena tindakan spesifik ini digunakan oleh WP Core berkali-kali.

    Kita perlu mencari tempat di mana ia didefinisikan, jadi cari ungkapannya do_action ('wp_head'. Perhatikan bahwa kami tidak menyelesaikan tanda kurung, karena kami belum dapat memastikan apakah tindakan ini memiliki parameter atau tidak.

    Eclipse hanya mengembalikan satu hasil yang dapat ditemukan di dalam /wp-includes/general-template.php mengajukan. Komentar sebelum definisi kait tindakan mengatakan itu “mencetak skrip atau data dalam tag kepala di ujung depan”, jadi sekarang kita bisa mati yakin itu wp_head adalah kait tindakan yang kita butuhkan.

    Memeriksa Parameter

    Saat Anda menambahkan tindakan Anda sendiri, Anda juga perlu memastikan apakah kait yang ingin Anda gunakan membutuhkan parameter atau tidak. Anda dapat dengan mudah menemukan ini dengan melihat fungsi do_action ().

    Sintaks fungsi do_action () adalah sebagai berikut:

     do_action ('name_of_action' [, $ parameter1, $ parameter2, ...]) 

    Hanya nama tindakan yang diperlukan, parameternya opsional. Jika Anda menemukan argumen dalam panggilan yang relevan dari fungsi do_action (), Anda perlu melakukannya sertakan dalam deklarasi fungsi kustom yang Anda buat.

    Jika Anda tidak menemukannya, maka fungsi kustom Anda harus berfungsi tanpa argumen. Dalam definisi do_action () dari tindakan kait wp_head, tidak ada parameter.

    Mari kita bandingkan dengan kait tindakan yang mengambil parameter. Kait tindakan yang disebut 'wp_register_sidebar_widget' mengambil satu parameter yang harus selalu Anda berikan ke fungsi kustom yang Anda ikat ke kait.

    Mari kita lihat perbedaan dalam sintaks do_action () dari dua kasus:

     do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);

    Dalam kasus pertama tidak ada parameter, jadi fungsi kustom akan menggunakan sintaks berikut:

     function my_function_without_parameters () … 

    Dalam kasus kedua ada satu parameter yang harus selalu Anda lewati sebagai argumen ke dalam deklarasi fungsi khusus Anda:

     function my_function_with_parameters ($ widget) … 

    Cara Menghubungkan Fungsi Kustom Anda Di

    Sekarang kita tahu semua yang kita butuhkan. Mari kita buat fungsi khusus kami yang akan menampilkan favicon di situs kami.

    Pertama, buat fungsi baru tanpa argumen apa pun, kemudian ikat ke kait tindakan wp_head dengan bantuan fungsi add_action () WordPress.

     fungsi custom_add_favicon () echo '';  add_action ('wp_head', 'custom_add_favicon');

    Kamu butuh berikan nama kait tindakan ke fungsi add_action () sebagai argumen dulu, maka kamu perlu tambahkan nama fungsi kustom Anda.

    Ini adalah dua parameter yang diperlukan dari add_action (). Ini memiliki dua parameter opsional juga, prioritas dan argumen yang diterima. Mari kita lihat bagaimana cara menggunakannya.

    Tetapkan Prioritas

    Ini terjadi dalam banyak kasus bahwa ada lebih dari satu aksi yang terikat pada hook yang sama. Begitu mana yang akan dieksekusi terlebih dahulu? Di sinilah kita dapat menggunakan $ parameter opsional prioritas dari fungsi add_action ().

    Kami menambahkan prioritas sebagai bilangan bulat positif, nilai standarnya adalah 10. Jika kita ingin tindakan dieksekusi lebih awal, kita berikan nilai yang lebih rendah, jika kita ingin dieksekusi nanti, kita berikan nilai yang lebih tinggi.

    Jadi jika kita berpikir bahwa favicon harus ada di sana lebih awal, kita dapat meningkatkan panggilan add_action () kami sebelumnya dengan cara berikut:

     add_action ('wp_head', 'custom_add_favicon', 5); 

    Harap dicatat bahwa prioritas selalu harus atur relatif ke fungsi kustom lainnya yang menggunakan kait tindakan yang sama.

    Tambahkan Jumlah Argumen yang Diterima

    Anda harus menambahkan jumlah argumen yang diterima jika Anda menggunakan kait tindakan yang mengambil parameter. Mari kita lihat contoh yang kita gunakan sebelumnya.

    Tindakan kait 'wp_register_sidebar_widget' mengambil satu parameter, jadi ketika kita mengikat fungsi kustom kita ke kait ini, kita juga perlu memasukkan ini sebagai argumen ketika kita memanggil fungsi add_action ().

    Kode kami dalam hal ini akan terlihat seperti ini:

     function my_sidebar_widget_function ($ widget) // Kode Anda add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1); 

    Perhatikan bahwa kita harus juga tambahkan prioritas (kami memilih 10 default di sini) untuk memastikan bahwa WordPress tahu apa arti setiap parameter. Jika kita mengabaikan prioritas, WordPress dapat menganggap bahwa 1 adalah prioritas yang tidak benar, karena menunjukkan jumlah argumen yang diterima.

    Kesimpulan

    Anda dapat membuat banyak percobaan dengan kait tindakan dalam penyesuaian tema. Misalnya Anda dapat menambahkan skrip khusus (JS) dan gaya (CSS) dengan kait tindakan wp_enqueue_scripts, atau kode Google Analytics Anda dengan kait tindakan wp_footer.

    Anda tidak hanya bisa tambahkan tindakan Anda sendiri, tapi kamu juga bisa hapus fungsionalitas lengkap dari inti WordPress dengan menggunakan fungsi remove_action () yang menggunakan logika yang sama dengan add_action ().

    Jika Anda seorang penulis tema, dan Anda ingin membuat tema yang dapat dikembangkan, itu bisa menjadi ide yang bagus untuk itu tambahkan kait tindakan kustom Anda sendiri ke file template yang sesuai dengan fungsi do_action ().

    Jika Anda ingin melakukannya, pikirkan baik-baik tentang parameter yang pengembang lain siapa yang akan menggunakan tema Anda harus lulus sebagai argumen ketika mereka ingin menghubungkan fungsi kustom mereka.

    Saat merancang lokasi kait tindakan khusus tema Anda jangan lupa itu tidak masuk akal untuk memasukkan kait tema khusus di tempat yang sama di mana WordPress Core sendiri memiliki kaitnya sendiri.