Kujenga Programu-jalizi Maalum ya WordPress: Mwongozo wa Vitendo
Tovuti inapohitaji kufanya jambo mahususi, programu-jalizi ndogo maalum inashinda kijenzi kizito cha kurasa. Hii ni muundo tunavyotumia.
Matatizo mengi ya WordPress tunayopangiwa kutatua hutokana na tovuti zilizojengwa zote kwa programu-jalizi na vijenzi vya kurasa. Jambo la kweli linapohitajika, programu-jalizi ndogo iliyoandikwa vizuri kwa kawaida ni jibu sahihi — na ni rahisi kudumishwa kuliko mtu yeyote anavyotarajia.
Anza na kichwa sahihi cha programu-jalizi
<?php
/**
* Plugin Name: SD Toolkit
* Description: Security hardening and structured data for Sembosi Digital sites.
* Version: 1.0.0
* Author: David Sembosi
* Requires at least: 6.4
* Requires PHP: 8.0
*/
if (!defined('ABSPATH')) {
exit; // No direct access.
}
Ukaguzi wa mwisho unamaanisha. Bila huo, faili linaweza kuombwa moja kwa moja na msimbo wako unafanya kazi nje ya WordPress.
Sajili vitu kwenye hooks, si wakati wa kupakia
add_action('init', function (): void {
register_post_type('project', [
'public' => true,
'has_archive' => true,
'supports' => ['title', 'editor', 'thumbnail', 'excerpt'],
'rewrite' => ['slug' => 'projects'],
]);
});
Hooks huweka msimbo wako kutabirika na kuwaruhusu wasanidi wengine kuiondoa kwa njia safi.
Tumia Settings API kwa chaguo
Usitengeneze fomu za utawala na matibabu ya $_POST kwa mikono. Settings API inakupa vituo vya kusafisha, uthibitishaji wa nonce na uzoefu thabiti wa utawala bila gharama.
register_setting('sd_toolkit', 'sd_toolkit_options', [
'type' => 'array',
'sanitize_callback' => 'sd_toolkit_sanitize_options',
'default' => ['enable_schema' => true],
]);
Safisha kwenye ingizo, epuka kwenye matokeo
Kanuni ileile kama kila mradi mwingine wa PHP:
- Ingizo:
sanitize_text_field(),absint(),wp_kses_post() - Matokeo:
esc_html(),esc_attr(),esc_url(),wp_kses()
Ongeza data iliyopangwa kwa usahihi
add_action('wp_head', function (): void {
if (!is_singular('project')) {
return;
}
$data = [
'@context' => 'https://schema.org',
'@type' => 'SoftwareApplication',
'name' => get_the_title(),
'description' => get_the_excerpt(),
];
printf(
'<script type="application/ld+json">%s</script>',
wp_json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
);
});
Pakia mali kwa njia sahihi
add_action('wp_enqueue_scripts', function (): void {
wp_enqueue_style('sd-toolkit', plugin_dir_url(__FILE__) . 'assets/style.css', [], '1.0.0');
wp_enqueue_script('sd-toolkit', plugin_dir_url(__FILE__) . 'assets/app.js', [], '1.0.0', true);
});
Usiweke tagi za <script> zilizowekwa kwenye templeti — unapoteza usimamizi wa utegemezi na kuficha.
Weka ndogo
Programu-jalizi inafaa kufanya kazi moja vizuri. Kama programu-jalizi yako inafanya kazi tano zisizohusiana, igawanye. Programu-jalizi ndogo zinaweza kupimwa, kukaguliwa na kuwa rahisi zaidi kukabidhiwa kwa msanidi anayefuata.