Memahami struktur asas plugin WordPress
Sebelum memulakan pembangunan, anda mesti memahami konsep asas dan cara kerja plugin WordPress. Sebuah plugin pada dasarnya merupakan sekumpulan fail PHP yang boleh memperluas fungsi asas WordPress, dan biasanya termasuk dokumentasi, kod yang dilaksanakan, fail sumber, dan lain-lain. Pengoperasian plugin tersebut sepenuhnya bergantung pada sistem Hook yang disediakan oleh WordPress.
Meneroka struktur fail standard untuk plugin
Sebuah plugin WordPress yang standard biasanya mengikuti struktur direktori yang tertentu. Fail plugin utama, sebagai contoh… my-first-plugin.phpMesti diletakkan di… /wp-content/plugins/ Dalam direktori tersebut atau sub-direktorinya. Fail ini sangat penting kerana ia mengandungi maklumat header plugin, yang digunakan untuk mengenal pastikan plugin anda kepada sistem WordPress.
Sebuah direktori plugin yang tipikal mungkin mengandungi bahagian-bahagian berikut: fail plugin utama, serta direktori untuk menyimpan sumber statik seperti JavaScript dan CSS. assets/ Folder untuk fail kelas PHP includes/ Senarai, untuk antaramuka pengguna admin/ 和 public/ Folder, serta alat yang digunakan untuk menterjemahkan fail-fail tersebut. languages/ Senarai. Struktur yang baik membantu dalam pengurusan dan penyelenggaraan kod, terutama apabila fungsi plugin menjadi semakin kompleks.
Diperoleh daripada WEB\nDisyorkan untuk membaca. Pembangunan Plugin WordPress: Panduan Lengkap Dari Permulaan Hingga Kemahiran Tinggi – Membina Fungsi Khusus Sendiri。
Mengenali maklumat header fail plugin yang penting
Setiap plugin mesti bermula dengan maklumat meta tertentu (Header), yang terkandung dalam blok ulasan PHP. Ini adalah kunci untuk WordPress mengenal pasti plugin tersebut. Format asasnya adalah seperti berikut:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://www.example.com/my-first-plugin
* Description: 这是一个简短描述,介绍插件功能的句子。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://www.example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ Di antaranya,Plugin Name Ia adalah wajib, manakala maklumat lain adalah pilihan tetapi disyorkan untuk diisi. Terutamanya… Text Domain 和 Domain PathMereka adalah persediaan untuk pengekstrakan aplikasi tambahan (plugin) ke dalam bahasa antarabangsa (sokongan pelbagai bahasa). WordPress akan membaca maklumat ini dan memaparkannya pada halaman pengurusan “aplikasi tambahan” di bahagian belakang.
Membina persekitaran pembangunan tempatan dan mencipta plugin pertama
Sebelum memulakan proses pengkodan, sebuah persekitaran pembangunan tempatan yang terpisah dan boleh diulang-ulang penggunaannya dengan cepat adalah sangat penting. Ini dapat mengelakkan risiko yang mungkin timbul daripada ujian terus-menerus pada laman web yang berada dalam talian.
Mengkonfigurasi rangkaian alat pembangunan tempatan
Disyorkan untuk menggunakan persekitaran integrasi pelayan tempatan, seperti Local by Flywheel, XAMPP, atau Laragon. Alat-alat ini membenarkan pemasangan PHP, MySQL, dan pelayan web yang diperlukan untuk WordPress dengan satu klik sahaja. Selain itu, anda juga memerlukan editor kod, seperti Visual Studio Code atau PHPStorm, yang menyediakan fungsi penyorotan sintaks, cadangan kod, dan pembetulan ralat. Pastikan bahawa versi PHP yang anda gunakan adalah serasi dengan pelayan sasaran; versi PHP 7.4 atau lebih baru disyorkan.
Menulis dan mengaktifkan sebuah plugin yang mudah
Sekarang, mari kita buat plugin pertama yang berfungsi dengan baik. /wp-content/plugins/ Dalam direktori tersebut, buatlah sebuah folder baru dan berikan nama ia sebagai… my-first-pluginDi dalam folder tersebut, cipta satu folder bernama my-first-plugin.php Fail tersebut.
Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Terakhir Pembangunan Plugin WordPress: Membina Plugin Pertama Anda Dari Kosong。
Salin maklumat header plugin yang disebutkan dalam bahagian sebelumnya ke permulaan fail ini. Kemudian, mari kita tambah satu fungsi yang mudah: menambahkan teks khusus secara automatik di akhir kandungan artikel. Ini memerlukan penggunaan “filter” hook dalam WordPress. Tambahkan kod berikut di bawah maklumat header:
// 在文章内容后添加自定义文本
function myfp_add_footer_text( $content ) {
// 仅对主循环中的单篇文章生效
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Terima kasih atas pembacaan! Artikel ini disokong oleh “My First Plugin”.</em></p>';
$content .= $custom_text;
}
return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' ); Setelah menyimpan fail tersebut, log masuk ke panel pentadbiran WordPress anda dan ke halaman “Pembantu” (Plugins). Anda sepatutnya dapat melihat sebuah pembantu baru dengan nama “My First Plugin”. Klik butang “Aktifkan” (Activate). Seterusnya, periksa sebuah artikel di laman web anda, dan anda akan mendapati bahawa teks yang kami tambahkan telah muncul di penghujung kandungan artikel tersebut. Dengan ini, pembantu WordPress pertama anda telah berjaya diaktifkan dan berfungsi dengan baik.
Menguasai teknologi teras dalam pembangunan plugin
Kekuatan kebolehluasan WordPress adalah berdasarkan beberapa konsep asas: Hook, API Pilihan (Options API), Jenis Artikel Dikustom (Custom Post Types/CPT), dan operasi pangkalan data. Memahami konsep-konsep ini adalah asas untuk pembangunan yang lebih lanjut.
Mengerti dengan mendalam tentang pengaitan tindakan (actions) dan penapis (filters)
Sistem Hook merupakan asas utama dalam pembangunan plugin untuk WordPress, dan ia terbahagi kepada dua jenis: Action dan Filter. Hook Action akan diaktifkan pada titik-titik tertentu semasa proses pelaksanaan (seperti semasa halaman dimuat, atau semasa artikel disimpan), membenarkan anda melakukan tindakan tertentu, seperti menambah menu atau menghantar e-mel. add_action() Fungsi untuk memuatkan (mounting).
Sebagai contoh, tambahkan sebuah halaman dalam menu pengurusan latar belakang (backend management menu).
function myfp_add_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限
'myfp-settings', // 菜单slug
'myfp_settings_page', // 回调函数,用于显示页面内容
'dashicons-admin-generic', // 图标
20
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' ); Filter hooks membenarkan anda “mengubah” data. Mereka menghalang data sebelum ia digunakan (seperti dipaparkan di browser atau disimpan ke dalam database), dan anda boleh mengubahnya serta mengembalikan nilai yang baru. Ini adalah ciri yang digunakan dalam plugin pertama kami. the_content Ia hanyalah satu pengait (hook) untuk penapis (filter).
Diperoleh daripada WEB\nDisyorkan untuk membaca. Menganalisis WooCommerce secara mendalam: Panduan lengkap untuk membina laman web e-dagang berprestasi tinggi daripada awal.。
Gunakan API pilihan untuk menyimpan tetapan plugin.
Pemalam (plugins) biasanya memerlukan penyimpanan beberapa tetapan, seperti kunci API, status suis (on/off), dan sebagainya. WordPress menyediakan… Options API Mari kita uruskan data jenis ini dengan mudah. Fungsi-fungsi utama yang terlibat termasuk… add_option(), get_option(), update_option() 和 delete_option()。
Buatlah sebuah halaman tetapan yang ringkas untuk menggunakan fungsi-fungsi tersebut. Pertama sekali, definisikan fungsi callback untuk menu yang telah dinyatakan di atas. myfp_settings_page Untuk menunjukkan sebuah borang:
function myfp_settings_page() {
?>
<div class="wrap">
<h1>Tetapan-tetapan plugin saya</h1>
<form method="post" action="/ms/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'myfp_settings_group' ); // 输出安全字段
do_settings_sections( 'myfp-settings' ); // 输出设置部分
submit_button(); // 输出提交按钮
?>
<input type="hidden" name="trp-form-language" value="ms"/></form>
</div>
<?php
} Kemudian, anda perlu menggunakan register_setting(), add_settings_section() 和 add_settings_field() Gunakan fungsi-fungsi tertentu untuk mendeklarasikan dan menginisialisasikan bidang-bidang pengaturan ini. Proses ini akan memastikan data disimpan dengan selamat. wp_options Dalam jadual.
Membina contoh plugin praktikal yang lengkap
Kita akan mengintegrasikan pengetahuan yang telah kita pelajari sebelum ini untuk membuat sebuah plugin yang agak kompleks tetapi praktikal: sebuah plugin “Anggaran Masa Pembacaan Artikel”. Plugin ini akan menunjukkan anggaran masa pembacaan di bawah tajuk artikel.
Mencipta fail utama plugin dan fungsi-fungsi yang diperlukan
Membuat folder baru untuk plugin post-reading-time Dan fail utama post-reading-time.phpIsi maklumat kepala plugin standard. Kemudian, kita akan membuat fungsi utama untuk mengira masa membaca.
function prt_calculate_reading_time( $post_id ) {
// 获取文章内容
$content = get_post_field( 'post_content', $post_id );
// 清除HTML标签和短代码,只计算文字
$text = strip_tags( strip_shortcodes( $content ) );
// 计算字数(中英文混合场景的简单处理)
$word_count = mb_strlen( $text, 'UTF-8' );
// 假设平均阅读速度为每分钟300字(可根据需要调整)
$reading_speed = 300;
// 计算分钟数,至少1分钟
$minutes = floor( $word_count / $reading_speed );
if ( $minutes < 1 ) {
$minutes = 1;
}
// 返回包含时间的字符串
return sprintf( _n( '约 %d 分钟读完', '约 %d 分钟读完', $minutes, 'post-reading-time' ), $minutes );
} Menunjukkan kandungan pada bahagian hadapan (front end) yang berintegrasi dengan sistem pengurusan di bahagian belakang (back end).
Seterusnya, kita perlu memutuskan bagaimana untuk menunjukkan masa tersebut. Cara yang biasa dilakukan adalah dengan menambahkannya ke dalam metadata artikel (di bawah tajuk artikel). the_content Penapis atau tema menyediakan hook tertentu. Di sini, kita menggunakan hook tindakan yang lebih sesuai. thesis_hook_before_post(Tergantung pada topik), atau dengan cara yang lebih umum, kandungan artikel boleh disaring terus.
Untuk kebolehan yang lebih fleksibel, kami telah mencipta sebuah kod ringkas (Shortcode) dan sebuah alat kecil (Widget), serta menyediakan pilihan tetapan yang mudah untuk mengawal sama ada ia perlu dipaparkan secara automatik atau tidak.
Pertama sekali, daftar kod ringkasan:
function prt_reading_time_shortcode( $atts ) {
$atts = shortcode_atts( array(
'id' => get_the_ID(),
), $atts, 'reading_time' );
$time_text = prt_calculate_reading_time( $atts['id'] );
return '<span class="reading-time">'.$time_text.'</span>'add_shortcode( 'reading_time', 'prt_reading_time_shortcode' ); Kemudian, kita boleh menambahkan hasil tersebut secara automatik ke permulaan kandungan artikel (melalui penapis):
function prt_prepend_to_content( $content ) {
if ( is_single() && get_option( 'prt_auto_display', '1' ) == '1' ) {
$time_html = '<div class="post-reading-time">' . prt_calculate_reading_time( get_the_ID() ) . '</div>';
$content = $time_html . $content;
}
return $content;
}
add_filter( 'the_content', 'prt_prepend_to_content' ); Anda juga perlu membuat satu pilihan tetapan di bahagian belakang (backend). prt_auto_displayMembolehkan pengguna untuk memilih sama ada ingin mengaktifkan fungsi penunjukan automatik atau tidak. Dengan ini, sebuah plugin yang lengkap dengan fungsi dan struktur yang jelas telah dibina.
RINGKASAN
Bermula dengan memahami struktur asas plugin dan maklumat header fail, kami secara beransur-ansur membina persekitaran pembangunan dan mencipta plugin fungsi yang pertama yang mudah. Dengan meneroka secara mendalam sistem hook yang merupakan inti keupayaan pengembangan WordPress, kami belajar bagaimana untuk mengganggu proses pelaksanaan dan mengubah data tanpa perlu memodifikasi kod asal WordPress. Dengan menggunakan API Options, kami dapat membuat tetapan yang boleh disimpan secara kekal untuk plugin. Akhirnya, dengan membina contoh lengkap bagi plugin “anggaran masa pembacaan artikel”, kami menggabungkan pengetahuan teori dengan amalan, meliputi keseluruhan proses pembangunan daripada penulisan logik fungsi, penciptaan kod singkat hingga integrasi dengan bahagian hadapan (frontend) aplikasi. Ingatlah, pembangunan plugin yang cemerlang bermula dengan perancangan yang jelas, pematuhan kepada standard pengkodan WordPress, dan sentiasa meletakkan keselamatan, prestasi, serta pengalaman pengguna sebagai keutamaan.
FAQ - Soalan Lazim
Apa pengetahuan asas yang diperlukan untuk membangunkan plugin WordPress?
Anda perlu memiliki asas pengaturcaraan PHP yang kukuh, kerana kod plugin kebanyakannya ditulis dalam PHP. Selain itu, anda perlu mempunyai pengetahuan asas tentang HTML, CSS, dan JavaScript untuk menguruskan paparan dan interaksi pada bahagian hadapan (front end). Pemahaman konsep asas MySQL akan membantu anda memahami cara WordPress menyimpan dan mencari data. Yang paling penting, anda perlu biasa membaca manual pembangunan rasmi WordPress (Codex) dan rujukan untuk pembangun (Developer Reference).
Bagaimana untuk memastikan bahawa plugin yang saya bangunkan adalah selamat?
Keselamatan adalah sangat penting. Sentiasa lakukan pengesahan (validation) dan pembersihan (sanitization) terhadap input pengguna, serta proses pengelakkan serangan (escaping) terhadap output yang dihasilkan. Gunakan mekanisme nonce yang disediakan oleh WordPress untuk mencegah serangan jenis Cross-Site Request Forgery (CSRF). Semasa membina kueri untuk pangkalan data, pastikan anda mengikuti amalan yang betul. $wpdb Metode yang disediakan oleh kelas (seperti…) prepare()Untuk mencegah serangan SQL injection, elakkan menggunakan fungsi-fungsi yang tidak selamat. eval()Kemaskini plugin anda secara berkala untuk membaiki kelemahan yang diketahui.
Di mana patut letakkan plugin tersebut?
WordPress plugin mesti diletakkan di dalam direktori yang ditentukan oleh WordPress pada laman web tersebut. /wp-content/plugins/ Di dalam direktori tersebut, anda boleh meletakkan fail PHP utama plugin tersebut terus di peringkat akar direktori tersebut. Namun, cara yang lebih teratur adalah dengan membuat folder sub yang berasingan untuk setiap plugin, dan meletakkan semua fail yang berkaitan (PHP, JS, CSS, gambar, dsb.) di dalam folder sub tersebut. Ini akan menjadikan struktur fail lebih jelas dan mengelakkan konflik dengan plugin lain.
Bagaimana untuk menambahkan halaman tetapan untuk plugin saya?
Menambahkan halaman tetapan untuk sambungan (plugin) biasanya melibatkan beberapa langkah: Pertama, gunakan add_action( ‘admin_menu’, ‘your_function’ ) Hook untuk mendaftar item menu pengurusan baru atau sub-menu. Kemudian, dalam fungsi panggil balik (callback function), keluarkan kod HTML untuk borang halaman tersebut. Selepas itu, gunakan… register_setting()、add_settings_section() 和 add_settings_field() Gunakan fungsi API Settings untuk mendeklarasikan dan mengaitkan bidang-bidang tetapan anda, ini akan menguruskan pemeriksaan hak akses, pengesahan bukan CE (Common Encryption), serta penyimpanan pilihan secara automatik. Akhir sekali, gunakannya dalam borang tersebut. settings_fields() 和 do_settings_sections() Fungsi ini digunakan untuk mengeluarkan bidang-bidang yang diperlukan.
Apa itu Hook (Gantung), mengapa ia sangat penting?
Hook adalah titik khusus dalam kod asas WordPress yang membenarkan plugin dan tema untuk “berhubung” (hook in) dan menjalankan kod mereka. Terdapat dua jenis hook: Hook Aksi (Actions) dan Hook Penapis (Filters). Hook Aksi akan dijalankan apabila peristiwa tertentu berlaku, dan ia digunakan untuk menambahkan fungsi baru. Hook Penapis pula membenarkan anda memodifikasi data sebelum ia digunakan atau disimpan. Sistem hook merupakan inti kebolehluasan (extensibility) WordPress, yang membolehkan pembangun mengubah atau meningkatkan fungsi WordPress dengan ketara tanpa perlu mengubah fail asasnya, sekali gus memastikan kebersihan dan keupayaan untuk dinaik taraf (upgradability) kod asas WordPress.
Selanjutnya, apa yang perlu kita lakukan seterusnya?
Bacaan lanjutan dan pengetahuan praktikal
Konten berikut berkaitan dengan topik artikel ini dan sesuai untuk bacaan lanjut. Lebih baik untuk memulakan dengan artikel yang paling dekat dengan masalah anda sekarang, dan kemudian secara bertahap mengembangkan ke topik yang berkaitan, kerana ini biasanya akan memberikan hasil yang lebih baik.
- Panduan Lengkap Pembinaan Laman Web dengan WordPress: Dari Awal Hingga Mahir, Membina Laman Web Profesional
- Panduan Lengkap Pembinaan Laman Web dengan WooCommerce: Bina Laman Web E-dagang Profesional Anda Dari Kosong
- Panduan Terakhir untuk Meningkatkan Prestasi WordPress: 16 Langkah dari Pemula hingga Pakar
- Mengapa memilih WooCommerce untuk membina laman web e-dagangan anda?
- Mengapa memilih WordPress sebagai platform utama untuk laman web?