Hal-hal yang Perlu Diingat Saat Membuat Plugin WordPress Dari Awal

Diterbitkan: 2022-01-02

Plugin WordPress sebenarnya adalah satu file atau sekelompok file yang memperluas atau meningkatkan fungsionalitas situs WordPress.

Setiap pengembang baru tahu "Cara Membuat Kode?", Tetapi ketika membuat plugin di WordPress maka pengembang harus mengingat beberapa persyaratan dasar untuk membuat plugin WordPress selain kualitas kode, keamanan, dan fungsionalitas.

Panduan ini menjelaskan langkah-langkah penting yang perlu diingat saat membuat plugin WordPress dari awal.

Di plugin WordPress, hal yang penting untuk dipahami adalah WordPress Hooks, misalnya tindakan dan filter. Hooks memungkinkan plugin berjalan dengan fungsionalitas yang ditentukan pada waktu tertentu dalam fungsi WordPress.

Daftar kait tindakan: https://codex.wordpress.org/Plugin_API/Action_Reference

 define('WP_DEBUG', benar);
--- Opsi WP_DEBUG telah ditambahkan di WordPress Versi 2.3.1.
--- Secara default, dianggap salah. Namun, biasanya disetel ke true di file wp-config.php.

-> Tambahkan tajuk informasi khusus plugin ke file kami yang baru dibuat di folder Plugin.

 /*
Nama Plugin: Jenis Postingan Testimonial
URI Plugin: https://wordpress.org/plugins/testimonial-post-type/
Deskripsi: Buat jenis posting Testimonial, itu Taksonomi & Tag.
Versi: 1.0
Penulis: Elsner Technologies Pvt. Ltd.
Penulis URI: https://www.elsner.com
Domain Teks: testimonial-post-type
Jalur Domain: /bahasa
*/

Terkait : Plugin WordPress Elsner yang Baru Diluncurkan: Posting Slider Shortcode

-> Semua plugin harus memiliki nama fungsi, definisi, dan nama kelas yang unik.

Ini mencegah plugin Anda bertentangan dengan plugin atau tema lain.

-> Jangan gunakan __ (garis bawah ganda), wp_ , atau _ (garis bawah tunggal) sebagai awalan.

Itu disediakan untuk WordPress itu sendiri. Anda dapat menggunakannya di dalam kelas Anda, tetapi tidak sebagai fungsi yang berdiri sendiri

-> Harap amankan plugin Anda dari akses file langsung.

 jika ( ! didefinisikan( 'ABSPATH' ) ) keluar; // Keluar jika diakses langsung

— Anda dapat menghindari akses file langsung dengan meletakkan kode ini di atas semua file php:

-> Harap tambahkan nonce ke panggilan POST Anda untuk mencegah akses yang tidak sah.

nonce (nomor yang digunakan sekali)

Nonces WordPress bukan angka, tetapi hash yang terdiri dari angka dan huruf. Mereka juga tidak digunakan hanya sekali, tetapi memiliki "seumur hidup" terbatas setelah itu mereka kedaluwarsa.

Biasanya kami membuat url seperti ini yang menghapus post_id 174
http://example.com/wp-admin/post.php?post=123&action=trash

Url ini sempurna, Tapi tidak aman. Misalkan, Penyerang mengetahui id kiriman, Kemudian penyerang dapat menghapus kiriman dengan url ini tanpa sepengetahuan Anda.

Menambahkan nonce akan mencegah hal ini. Misalnya saat menggunakan nonce, url yang dihasilkan WordPress untuk pengguna terlihat seperti ini:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204

 $nonce = wp_create_nonce( 'my-action_trash' );

— Ini hanya mengembalikan nilai nonce itu sendiri.

— Nilai ini dapat Anda masukkan ke dalam URL seperti

action='http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce='.$nonce;

— Memverifikasi nonce yang diteruskan di URL

 wp_verify_nonce( $_REQUEST['_wpnonce'], 'my-action_trash' );

Terkait : Bagaimana Cara Mengirimkan Plugin Anda ke Direktori Plugin WordPress?

-> Harap bersihkan, keluar, dan validasi panggilan POST Anda

Sanitasi: Membersihkan Input Pengguna
Seseorang tidak boleh memiliki data mentah yang dimasukkan ke dalam database, bahkan oleh fungsi pembaruan atau dengan panggilan prepare().

Membersihkan data POST Anda saat digunakan untuk melakukan panggilan tindakan, atau pengalihan URL akan mengurangi kemungkinan kerentanan XSS.

sanitize_text_field($_POST['post_name']);
— Data dapat dibersihkan menggunakan fungsi di atas.
— Di balik layar, fungsinya melakukan hal-hal yang disebutkan di bawah ini:
Memeriksa UTF-8 yang tidak valid
Mengonversi < karakter tunggal menjadi entitas
Hapus semua tag
Hapus jeda baris, tab, dan spasi ekstra
Strip oktet
— sanitize_*() kelas fungsi pembantu
https://developer.wordpress.org/plugins/security/securing-input/

Validasi : Memeriksa Masukan Pengguna
Selain sanitasi, Anda harus memvalidasi semua panggilan Anda. Jika panggilan $_POST seharusnya hanya berupa angka, pastikan itu adalah int() sebelum Anda meneruskannya melalui apa pun. Setiap kali Anda menambahkan data ke database, itu harus menjadi data yang benar.

 intval( $_POST['posting'] );
--- jika $_POST['posting']

memiliki nilai numerik, itu akan mengembalikan true. Jika tidak, maka salah.

Escape: Mengamankan Output
Melarikan diri adalah mengambil data yang sudah Anda miliki, dan mengamankannya sebelum memberikannya kepada pengguna akhir.

Melarikan diri/casting pada output hanya menghilangkan ambiguitas, dan menambah kejelasan.

 <h4> <?php echo esc_html( $judul ); ?> </h4>
--- esc_html()

harus digunakan pada saat elemen HTML menyertakan bagian data yang outputnya kita miliki.

 esc_html ( string $teks )

Melarikan diri untuk blok HTML.

 esc_html_e ( string $teks )

Tampilkan teks terjemahan yang telah diloloskan untuk penggunaan yang aman dalam keluaran HTML.

 esc_html__ ( string $teks )

Ambil terjemahan $text dan loloskan untuk penggunaan yang aman dalam output HTML.

 <img alt="" src="<?php echo esc_url( $gambar_url ); ?>
--- esc_url()

harus digunakan pada setiap URL, termasuk yang ada di atribut 'src' dan 'href' dari elemen HTML.

 <?php echo esc_js( $nilai ); ?>
--- esc_js()

ditujukan untuk Javascript sebaris.

 <ul class="<?php echo esc_attr( $stored_class ); ?>">
--- esc_attr()

dapat digunakan pada semua hal lain yang dicetak ke dalam atribut elemen HTML.

Catatan :-
Silakan periksa tautan di bawah ini untuk memahami di mana folder itu berada dan bagaimana cara terbaik untuk memanggilnya
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories

Jika memungkinkan, simpan data ke tabel wp_options.

Tujuan akhir dari semua ini adalah untuk memastikan bahwa data yang tidak valid dan tidak aman tidak akan pernah diproses atau ditampilkan. Bersihkan, periksa, lepaskan semuanya. Juga, jangan pernah menaruh kepercayaan pada pengguna untuk selalu memasukkan data yang waras.

Terkait: Cara Menyesuaikan Halaman Login WordPress