Ruka hadi maudhui
Tunajenga kwa 2026 — tuambie timu yako inahitaji nini. Anza mradi
Sembosi Digital Sembosi Digital

Kujenga Programu-jalizi Maalum ya WordPress: Mwongozo wa Vitendo

WordPress Dakika 1
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.