Agar siz hech qachon plaginning "kompyuteringizda ishlashini" va keyin ishdan chiqishini ko'rgan bo'lsangiz, ehtimol uning ishdan chiqishini ham ko'rgansiz. après kichik yangilanish WordPressSiz asl muammoni bilasiz: xatti-harakatlardagi jimgina o'zgarishlar, ko'rinadigan yangi xususiyatlardan ko'proq.
WordPress 6.9.x (va aniqrog'i, 2026-yil aprel oyida barqaror bo'lgan 6.9.4) asosiy tomonda aniq tendentsiyani davom ettirmoqda: API izchilligi oshdi, xavfsizlik mustahkamlandi va muharrir blokidagi (Gutenberg) o'zgarishlar mavzularingizga, tarixiy qisqa kodlaringizga va sahifa quruvchi integratsiyalaringizga ta'sir qildi.
Nima o'zgaradi
Uchun "muhim" bo'lgan o'zgarish développeurs 6.9.x da bitta sehrli API emas. Bu sizning funksiyalarni yetkazib berish usulingizni birlashtirib o'zgartiradigan fikrlar to'plamidir: aktivlarni yaxshiroq standartlashtirish (skriptlar/uslublar), kirish/chiqishni mustahkamlash (tozalash/qochish) va klassik mavzularni saytni tahrirlash (FSE) cheklovlari bilan bosqichma-bosqich moslashtirish.
Xususan, men 6.9.x saytlarida ishlab chiqarishda uchta sohaning uzilishi kuzatildi: yomon e'lon qilingan skriptlar (yomon yuklanish, bog'liqliklarning yo'qligi), haddan tashqari ruxsat beruvchi REST so'nggi nuqtalari (imkoniyatlar/nonce) va noto'g'ri vaqtda ilgaklardan foydalanadigan eski qo'llanmalardan meros bo'lib qolgan "parchalar".
- Aktivlar (JS/CSS): Navbatga oid taxminlar (bog'liqliklar, yuklash strategiyasi, versiyalar) qat'iyroq. "U bog'liqliklarsiz ishlaydi" muammolari, ayniqsa keshlash/konkatlash/minifikatsiya bilan bog'liq vaqti-vaqti bilan xatolarga aylanib bormoqda.
- REST API/xavfsizlik: ko'proq e'tibor permission_callback, nonces va imkoniyatlarni tekshirish. Bir nechta muharrirlarga (mualliflar, hissa qo'shuvchilar) ega saytlar birinchi bo'lib e'tibordan chetda qoladi.
- Mavzular va bloklar: Ekotizim tobora ko'proq FSE bilan mos keladigan naqshlarga intilmoqda. Klassik mavzular qo'llab-quvvatlanmoqda, ammo "eski maktab" integratsiyalari (mavzu variantlari, maket qisqa kodlari) reja talab qiladi.
Xulq-atvordagi o'zgarishlarni kuzatib borish uchun eng yaxshi manbalaringiz asosiy ishlab chiquvchi eslatmalari va chiptalari hisoblanadi:
- Dasturchi blogi (rasmiy dasturchi eslatmalari)
- WordPress Core Trac (chiptalar)
- wordpress-develop GitHub repo (PR va commits)
Uslubiy eslatma: Men ".4" pastki versiyasi katta o'zgarishlarni keltirib chiqaradi deb da'vo qilmoqchi emasman. Amalda, o'zgarishlar ko'proq o'zgarishlarning to'planishidan (6.7 → 6.8 → 6.9) va eskirgan taxminlarga tayanadigan plagin/mavzudan kelib chiqadi. "6.9.4" tahlilining maqsadi sizga foydalanishga yaroqli zamonaviy umumiy ma'lumot berishdir. MAINTENANT, PHP 8.1+ bilan.
Tez xulosa
- Sizning kodingiz navbatda "qat'iy" bo'lishi kerak. : aniq bog'liqliklar, shartli yuklash, pastki qismga qattiq kiritilgan skriptlar yo'q.
- REST: permission_callback + nonces agar siz harakatlarni (hatto ichki harakatlarni ham) fosh qilsangiz, ular endi "ixtiyoriy" emas.
- Vaqti yomon bo'lgan ilgaklar (init vs wp_loaded vs enqueue) kesh, blok muharriri va ba'zi quruvchilar bilan ko'rinadigan xatolarga aylanadi.
- Klassik mavzular: Ular hayotiyligicha qolmoqda, ammo siz bloklarga mos keladigan naqshlarni (shablonlar, uslublar, o'zgarishlar) qabul qilishdan foyda ko'rasiz.
- Divi 5 / Elementor / Avada: Muammolarning aksariyati HTML dan ko'ra ko'proq aktivlar va shartli belgilardan kelib chiqadi (hamma joyda yuklanmaydi).
- Zudlik bilan choralar ko'rish kerak : aktivlaringizni tezkor audit qilish + REST so'nggi nuqtalari + "eski qo'llanmalar" parchalari.
Kodda oldin/keyin
Men tez-tez muammolarni hal qiladigan haqiqiy holatni ko'rib chiqaman: JS/CSS ni "avvalgidek" kiritadigan plagin (yoki functions.php), keyin esa nizolar bilan yakunlanadi (jQuery to'g'ri vaqtda yuklanmagan, quruvchi skriptlari keyin yuklangan, hamma narsani qayta tartiblaydigan minification).
1-holat: Aktivlar navbati juda "bo'shashgan" (kesh va quruvchilar bilan bog'liq muammolar)
Oldin (tez-tez anti-naqsh)
<?php
// Mauvais exemple : injection directe, pas de dépendances, pas de version, pas de condition.
add_action('wp_footer', function () {
?>
<script>
// Code inline difficile à déboguer, souvent cassé par la minification
jQuery(function($){
$('.cta').on('click', function(){ alert('ok'); });
});
</script>
<?php
});
// Mauvais exemple : style chargé partout, même dans l'admin et le builder
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style('mon-style', get_stylesheet_directory_uri() . '/assets/style.css');
});
Sahna ortida nima bo'lyapti: skriptingiz jQuery mavjudligini taxmin qiladi, lekin siz bog'liqlikni e'lon qilmadingiz. Ba'zi keshlarda tartib o'zgaradi. Divi/Elementor bilan muharrir o'z paketlarini yuklaydi va ba'zi skriptlarni kechiktirishi mumkin. Natija: vaqti-vaqti bilan xato, talab bo'yicha qayta yaratishning iloji yo'q.
Keyin (WordPress 6.9.4+ ning mustahkam yondashuvi)
<?php
/**
* Enqueue propre : dépendances, versioning, conditionnel, et inline script attaché au handle.
* Compatible WordPress 6.9.4+ / PHP 8.1+.
*/
add_action('wp_enqueue_scripts', function () {
// Exemple de condition : ne chargez pas sur tout le site si ce n'est utile que sur une page.
if ( ! is_page('contact') ) {
return;
}
$theme_version = wp_get_theme()->get('Version');
// CSS versionné
wp_enqueue_style(
'mon-style',
get_stylesheet_directory_uri() . '/assets/style.css',
array(),
$theme_version
);
// JS externe versionné + dépendances explicites
wp_enqueue_script(
'mon-cta',
get_stylesheet_directory_uri() . '/assets/cta.js',
array('jquery'),
$theme_version,
array(
'in_footer' => true,
)
);
// Inline script attaché au bon handle (évite l'injection "au hasard" dans le footer)
$inline = <<<JS
jQuery(function($){
$('.cta').on('click', function(){
alert('ok');
});
});
JS;
wp_add_inline_script('mon-cta', $inline, 'after');
}, 20);
Asosiy farqlar:
- Aniq bog'liqliklar : endi “u… ekan, ishlaydi” degan gap yo'q.
- Versingi : kesh to'g'ri bekor qilindi o'rnatishdan keyin Mavzu/plagin yangilandi.
- Shartli : ishlash + quruvchi to'plamlari bilan kamroq ziddiyatlar.
- Tutqichga biriktirilgan ichki qism : kafolatlangan buyurtma va oson nosozliklarni tuzatish.
2-holat: REST so'nggi nuqtasi juda ruxsat beruvchi (bu oxir-oqibat haqiqiy xavf tug'diradi)
Yana bir klassik xato: harakatni ishga tushirish uchun "ichki" REST nuqtasi (keshni tozalash, qayta sinxronlashtirish, import qilish). Ko'pgina unutilgan parchalarda kuchli permission_callback funksiyasi yo'q. Bu "shunchaki yaxshi amaliyot" emas; bu hujum yuzasi.
Oldin (xavfli)
<?php
add_action('rest_api_init', function () {
register_rest_route('monplugin/v1', '/purge', array(
'methods' => 'POST',
'callback' => function () {
// Dangereux : aucune permission, aucune vérification
do_action('monplugin_purge_cache');
return array('ok' => true);
},
));
});
Keyin (ruxsatnomalar + nonce + standartlashtirilgan javob)
<?php
add_action('rest_api_init', function () {
register_rest_route('monplugin/v1', '/purge', array(
'methods' => 'POST',
'callback' => 'monplugin_rest_purge_cache',
'permission_callback' => function (WP_REST_Request $request) {
// 1) Capacité : adaptez selon votre besoin (manage_options est volontairement strict).
if ( ! current_user_can('manage_options') ) {
return false;
}
// 2) Nonce REST : attendu via header X-WP-Nonce côté JS.
$nonce = $request->get_header('X-WP-Nonce');
if ( ! $nonce || ! wp_verify_nonce($nonce, 'wp_rest') ) {
return false;
}
return true;
},
));
});
/**
* Callback REST.
*/
function monplugin_rest_purge_cache(WP_REST_Request $request): WP_REST_Response {
do_action('monplugin_purge_cache');
return new WP_REST_Response(
array(
'ok' => true,
'message' => 'Cache purgé.',
),
200
);
}
Asosiy farqlar:
- permission_callback Bu bezak emas: bu sizning himoyangiz.
- Nonce wp_rest : agar siz administratordan (yoki himoyalangan ekrandan) so'nggi nuqtaga qo'ng'iroq qilsangiz, bu juda muhim.
- WP_REST_Response : JS mijozlari uchun barqarorroq (holat kodi, tuzilma).
Beton ta'siri
(O'rta) bloggerlar uchun
Buni, ayniqsa, kengaytmalaringiz orqali his qilasiz: WordPress 6.9.x yangilanishi + hamma joyga skriptlarni yuklaydigan plagin muharrirni sekinlashtirishi, tugmani buzishi yoki faqat ma'lum sahifalarda konsol xatolarini keltirib chiqarishi mumkin.
- Odatdagi alomat : “Bu B sahifasida emas, balki A sahifasida ishlaydi”. Umumiy sabab: shartli, e'lon qilinmagan bog'liqliklar yo'qligi, agressiv keshlash.
- Yana bir alomat Konstruktor yuklaydi, lekin ba'zi modullar bo'sh. Bu ko'pincha JavaScript mojarosi (yuklash tartibi, kutubxonaning nusxalangan versiyasi).
Dasturchilar uchun
Sizning ishingiz ishonchlilikka qarab o'zgaradi: e'lon qilish, izolyatsiya qilish, sinovdan o'tkazish. "Tez" parchalar hali ham mumkin, lekin ular to'g'ri joyga va ilmoqqa, toza bog'liqliklarga ega bo'lishi kerak. Men xatolarni ko'pincha noto'g'ri faylga (bola mavzu o'rniga ota-ona mavzusining functions.php fayliga yoki versiya boshqaruvisiz parcha plaginiga) ko'chirilgan koddan kelib chiqqanini ko'rganman.
- Mavjud plaginlar JS ni inline kiritganlar yoki REST so'nggi nuqtalarini ruxsatsiz fosh qilganlar xavf ostida (xatolar + xavfsizlik).
- Klassik mavzular : agar siz maket qisqa kodlari + quruvchi + maxsus JS ni aralashtirsangiz, yuklash tartibi juda muhim bo'lib qoladi.
- FSE mavzulari (blok mavzulari) : agar siz maketning bir qismini naqshlar/bloklarga ko'chirsangiz, izchillikka erishasiz, lekin siz "variantlar" o'rniga "shablonlarni o'ylashni" o'rganishingiz kerak.
Divi 5, Elementor, Avada-ga o'ziga xos ta'sir
Uchchalasining umumiy jihati bor: ular juda ko'p aktivlarni, ba'zan shartli ravishda yuklaydi va ularda front-end kabi ishlamaydigan muharrir/oldindan ko'rish rejimlari mavjud.
- 5-bo'lim : faqat yuklangan skriptlardan ehtiyot bo'ling is_admin() (yomon sinov), chunki Divi gibrid ekranlarga ega. Muayyan harakatlarni sinab ko'rish yaxshiroq (masalan, navbatni yoqish wp_enqueue_scripts + agar kerak bo'lsa, kontekstni aniqlash) va JS ni kiritishdan saqlaning wp_footer tutqichsiz.
- Elementor Agar siz maxsus vidjet yaratayotgan bo'lsangiz, aktivlaringizni faqat vidjet mavjud bo'lganda (yoki hech bo'lmaganda Elementor sahifalarida) yuklang. To'qnashuvlar ko'pincha butun sayt bo'ylab yuklangan global skriptdan kelib chiqadi.
- Avada Fusion Builder o'zining skriptlar ekotizimiga ega. Xuddi shu qoida: aniq bog'liqliklar + versiyalash + ikki marta yuklangan kutubxonalardan qochish.
Diagnostika jadvali ("ishlasa, keyin buziladi")
| alomat | Ehtimoliy sabab | tekshiruv | qaror |
|---|---|---|---|
| Ba'zi sahifalarda JS tugmasi nofaol | Skript bog'liqlikdan (jQuery/Bundle) oldin yuklangan yoki umuman yuklanmagan | Brauzer konsoli + Tarmoq yorlig'i, fayllarning tartibini va mavjudligini tekshiring | wp_enqueue_script bog'liqliklar + shartli + wp_add_inline_script bilan |
| Yangilanishdan keyin REST funksiyasi "Taqiqlangan" | permission_callback juda qattiq yoki bir marta ham yetishmaydi | So'rovni tekshiring (X-WP-Nonce sarlavhasi), current_user_can ni tekshiring | Nonce wp_rest + tegishli imkoniyatlar + xabarlarni qo'shingxato |
| Elementor/Divi muharriri sekin | Global aktivlar juda katta va hamma joyda to'lib-toshgan. | Profiler (Ishlash yorlig'i), ko'rib chiqilayotgan plaginni vaqtincha o'chirib qo'ying | Faqat kerakli sahifalar/kontekstlarga yuklang |
| Yangilanishdan keyin buziladigan "tasodifiy" parcha | Noto'g'ri kanca (init va wp_loaded), funksiya juda erta chaqirilmoqda | WP_DEBUG_LOG + stek izi, bajarilish tartibini tekshirish | Ilgakni siljiting, ustuvorlikni sozlang va funksiya mavjudligini tekshiring. |
| Joylashtirilganiga qaramay, ko'rinmas o'zgarishlar | Kesh (plagin/CDN/brauzer) + statik aktiv versiyasi | Keshlarni tozalash + so'rov satri versiyasini tekshirish | Versiya wp_get_theme()->get('Version') yoki filemtime orqali |
Xavflar, mosliklar va hushyorlik nuqtalari
Yangiliklar (trend 6.7 → 6.9.4)
- Tozalik talabi Aktivlarga kelsak: WordPress va ekotizim (quruvchilar, keshlar, optimallashtirish) quvur liniyasidan tashqarida "qo'shilgan" skriptlarga nisbatan kamroq toqat qiladi.
- Yashirin qattiqlashuv : ilgari "tasodifan" sodir bo'lgan narsa kamroq sodir bo'ladi.
- Ko'proq dam olish joylari (plaginlar, bloklar, foydalanuvchi interfeysi): shuning uchun ruxsatlaringiz noaniq bo'lsa, ko'proq xavf mavjud.
Nima o'zgarmoqda ("buzilish" deb e'lon qilinmasdan)
- Ijro buyrug'i Noto'g'ri tanlangan huklar xatolarga aylanishi mumkin. Klassik misol sifatida skriptlarni juda erta ro'yxatdan o'tkazish (init) va ularni juda kech navbatga qo'yish yoki aksincha.
- Keshlash va minififikatsiya HTTP/2/3 + plaginlarni birlashtirish bilan skriptlarning tartibi haqidagi taxminlar mo'rt.
- Muharrirlar Orqa ofis endi "alohida joy" emas. Sayt muharriri va quruvchilari ilovalarga o'xshaydi, shuning uchun sizning global skriptlaringiz ular bilan o'zaro ta'sir qiladi.
Potensial buzilishlar nima
- Eski darslikdan kod : ruxsatsiz JS ni kiritadigan, taxminiy ilgaklardan foydalanadigan yoki RESTni bajaradigan 2017–2021 yillardagi parchalar.
- PHP juda eski Agar xosting provayderingiz sekin ishlasa, siz halokatli xatolarga duch kelasiz (yozilgan xususiyatlar, moslik va boshqalar). WordPress 6.9.4 PHP 8.1+ tavsiya etilgan versiyada ishlaydi. Ishlab chiqarish muhitingizni tekshiring.
- Ota-ona mavzusidagi parchalar : mavzu yangilanishi = kod yo'qolishi = “yo'q bo'ldi”. Bu juda keng tarqalgan “hodisa”.
Amortizatsiya xronologiyasi (pragmatik)
Asosiy kod kamdan-kam hollarda imtiyozli davrsiz to'satdan eskiradi. Haqiqiy xavf shundaki, sizning kodingiz kafolatlanmagan xatti-harakatlarga (tartib, yashirin bog'liqliklar) tayanadi va oxir-oqibat buziladi. Buni sukut bo'yicha eskirish sifatida qabul qiling.
2026-yil uchun tavsiyam: aktivlarni qattiq kodlaydigan har qanday kodni ko'rib chiqing (echo ) comme “à migrer”, même s’il n’y a pas de notice officielle.
Qanday qilib ko'chib o'tish kerak
1-qadam: Tezkor audit (30 daqiqa, juda tejamkor)
- Plaginlaringiz/mavzularingizda qidiruv:
wp_footer+<script>,echo '<script',admin-ajax.php,register_rest_routeruxsatsiz_qayta chaqiruv. - Aktivlaringiz aslida kerak bo'lgan sahifalarni sanab o'ting (ko'pincha saytning 10–20%).
- Sahna muhitida jurnal yozishni yoqish:
WP_DEBUG,WP_DEBUG_LOGBuni ishlab chiqarishda nazoratsiz bajarishdan saqlaning (ma'lumotlarning sizib chiqishi xavfi).
<?php
// wp-config.php (staging uniquement)
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false); // Évite d'afficher les erreurs aux visiteurs
2-qadam: Aktivlarni tutqichlarga ko'chiring (va yovvoyi in'ektsiyani to'xtating)
Versiyalashning ikkita ishonchli strategiyasi: mavzu/plagin versiyasi (oddiy) yoki filemtime() (aniq, lekin tarqatilgan FSdan ehtiyot bo'ling).
<?php
add_action('wp_enqueue_scripts', function () {
$file = get_stylesheet_directory() . '/assets/cta.js';
$url = get_stylesheet_directory_uri() . '/assets/cta.js';
// Attention : filemtime() peut être coûteux sur certains hébergements réseau.
$ver = file_exists($file) ? (string) filemtime($file) : wp_get_theme()->get('Version');
wp_enqueue_script(
'mon-cta',
$url,
array('jquery'),
$ver,
array('in_footer' => true)
);
});
3-qadam: RESTni (imkoniyatlar + nonce) xavfsizlashtiring va uni hujjatlashtiring
Agar sizning oxirgi nuqtangiz old tomondan (tashrif buyuruvchilar tomonidan) chaqirilsa, "wp_rest" bo'lmagan holat har doim ham yetarli emas (va bu ommaviy autentifikatsiya mexanizmi emas). Bunday holda, dastur tokenlariga, imzolarga o'ting yoki harakatlarni qat'iy cheklang. "Tozalash/import" oxirgi nuqtasiga anonim kirishga ruxsat bermang.
4-qadam: Ilgaklar va ustuvorliklarni tekshiring ("arvoh" hasharotlarining manbai)
Men ko'rgan haqiqiy xatolar:
- Noto'g'ri ilgakdan foydalaning navbatga turish
inito'rnigawp_enqueue_scripts. - Ustuvorlik ziddiyati : kodingiz quruvchi/keshdan oldin bajariladi, keyin esa qayta yoziladi.
- Yuklashdan oldin chaqiriladigan funksiya : siz plaginning funksiyasidan foydalanmoqdasiz, plagin esa hali o'z sinflarini ishga tushirmagan.
<?php
// Exemple : si vous dépendez d'un plugin, évitez d'appeler ses classes trop tôt.
add_action('plugins_loaded', function () {
if ( ! class_exists('MaLib\Client') ) {
// Le plugin dépendant n'est pas chargé ou pas actif
return;
}
// Initialisation sûre ici
}, 20);
5-qadam: Moslik tekshiruv ro'yxati (bosqichlash)
- WordPressni sahnalashtirishda 6.9.4 versiyasiga yangilang.
- Divi 5 / Elementor / Avada + qo'shimchalarini yangilang.
- Keshlarni tozalash (plagin keshi, server, CDN) va brauzer keshi (ko'pincha unutiladi).
- Sinov: tahrirlash rejimida sahifa quruvchisi, front-end, mobil, administrator bo'lmagan foydalanuvchi.
- Agar marshrutlarga teginsangiz/qayta yozsangiz, doimiy havolalarni tekshiring (qayta saqlang).
Hozir harakat qilishimiz kerakmi yoki kutishimiz kerakmi?
Hozir harakat qiling agar siz kamida bitta katakchani belgilasangiz:
- Sizda uzoq vaqt davomida sinovdan o'tkazilmagan "tarixiy" parchalar (functions.php, snippet plagini) mavjud.
- Siz nozik vazifalar uchun REST so'nggi nuqtalarini yoki "admin-ajax" AJAX harakatlarini fosh qilasiz.
- Siz konstruktordan (Divi 5/Elementor/Avada) foydalanmoqdasiz va sizda global maxsus skriptlar mavjud.
- Sizda bir nechta rollarga (mualliflar, hissa qo'shuvchilar) ega sayt mavjud: REST xavfsizligi/imkoniyatlari muhokama qilinmaydi.
Siz kutishingiz mumkin (bir necha hafta) agar:
- Saytingizda maxsus kod yo'q (yoki faqat ishonchli plaginlar orqali),
- Sizda bosqichma-bosqich va oylik yangilanish jarayoni mavjud,
- Siz hech qanday maxsus REST/AJAX sirtlarini namoyish qilmayapsiz.
Mening tajribamga ko'ra, bosqichma-bosqich "kutish" oxir-oqibat qimmatga tushadi. To'g'ri murosaga kelish: muntazam ravishda asosiy yangilanishlar, lekin xavf sohalarini maqsadli audit qilish (aktivlar + REST + ilgaklar).
Texnik xizmat ko'rsatish bo'yicha maslahatlar
1) Kod qo'shish usulingizni standartlashtiring
- Parchalarni ota-ona mavzusiga joylashtirishdan saqlaning.
- Biznes mantig'i uchun mini "sayt" plaginini (agar kerak bo'lsa, mu-plagin) afzal ko'ring.
- Agar siz snippet plaginidan foydalanayotgan bo'lsangiz, snippetlaringizni versiyalashtiring (Git copy): Men PHP xatosidan keyin snippetlarning o'chirilganini ko'rdim va hech kim "nima o'zgarganini" bilmasdi.
2) Har bir WordPress yangilanishi uchun rejalashtirish uchun minimal testlar
- Front end: asosiy sahifalar, shakllar, kuzatuv.
- Admin: blok muharriri, quruvchi ekrani, media.
- Rollar: qobiliyat xatolarini aniqlash uchun muallif hisobi (admin emas) bilan sinov o'tkazish.
- JS konsoli: kamida bitta tezkor o'tish (xatolar/ogohlantirishlar).
3) Ishlash: Kamroq yuklang, lekin yaxshiroq
- Aktivlaringiz holatini aniqlang (sahifa, kontent turi, qisqa kod/blok mavjudligi).
- Ikki marta yuklangan kutubxonalarni olib tashlang (ko'pincha quruvchilar + marketing plagini bilan).
- "Yopishqoq yamalar" dan qochish uchun versiyani to'g'ri tanlang.
4) Xavfsizlik: REST/AJAX va nonces
- Biror narsani o'zgartiradigan har bir harakat tekshirilishi kerak Qobiliyatlari + nuncio.
- Mijoz tomonidagi parametrlarga ishonmang. Ularni muntazam ravishda tozalang/tasdiqlang.
PHP uchun foydali ma'lumotnoma: PHP parolini xeshlash (agar siz tokenlar bilan ishlayotgan bo'lsangiz) va WordPress tomonida, qo'llanmada keltirilgan xavfsizlik xususiyatlari.
resurslari
- Dasturchi blogi (WordPress dasturchi eslatmalari)
- wp_enqueue_script() havolasi
- wp_add_inline_script() havolasi
- REST API qo'llanmasi
- register_rest_route() havolasi
- Core Trac (o'zgarishlarni kuzatish)
- GitHub wordpress-ishlab chiqish (PR/majburiyatlar)
- WordPress hujjatlari (foydalanuvchilar + dasturchilar)
- PHP 8.1 versiyasi haqida eslatmalar
FAQ
1) Men parchani nusxaladim va 500 xatosi chiqmoqda. Avval nima qilishim kerak?
Parchani o'chirib qo'ying (yoki agar uni plaginga qo'ysangiz, faylning nomini o'zgartiring), keyin qarang wp-content/debug.log sahnalashtirishda. Eng ko'p uchraydigan xato nuqta-vergulning yo'qligi yoki noto'g'ri yopilgan jingalak qavs bo'lib qolmoqda.
2) 2026-yilda maxsus kodni qayerga joylashtirish kerak: functions.php, plagin, mu-plugin?
"Biznes" kodi (CTA, REST, ichki kuzatuv) uchun men kichik maxsus plaginni tavsiya qilaman. Functions.php kosmetik maqsadlar uchun maqbuldir, lekin mavzularni o'zgartirganda kodni yo'qotish xavfi mavjud.
3) Mening JSim front-endda ishlaydi, lekin Elementor/Divida emas. Nima uchun?
Chunki muharrir front-end emas. Quruvchilar turli xil paketlarni, ba'zan iframe ichida yuklaydilar. Skriptlaringizni quyidagi orqali yuklang wp_enqueue_scriptBog'liqliklarni e'lon qiling va haddan tashqari global selektorlardan qoching.
4) Hali ham jQuery'dan foydalanishim kerakmi?
Agar saytingiz (yoki quruvchingiz) allaqachon unga bog'liq bo'lsa, ha, lekin bog'liqlikni e'lon qiling. Agar siz yangi modulni ishga tushirayotgan bo'lsangiz, bog'liqliklarsiz zamonaviy JavaScript-dan foydalaning va uni shartli ravishda yuklang.
5) Nima uchun men administrator bo'lsam ham, REST oxirgi nuqtam 403 ni qaytaradi?
Ko'pincha, chunki nuncio wp_rest yuborilmadi (sarlavha X-WP-Nonce), yoki siz autentifikatsiya qilinmagan kontekstdan (maxfiy yorliq, boshqa domen, kesh) sinovdan o'tkazayotganingiz uchun. Tarmoq yorlig'idagi so'rovni tekshiring.
6) Skriptni o'zgartirgandan so'ng qaysi keshni tozalashim kerak?
Kamida: plagin keshi (agar mavjud bo'lsa) + server/CDN keshi + brauzer keshi. Agar aktiv versiyangiz o'zgarmasa, "WordPress keshini tozalagan" bo'lsangiz ham, brauzer eski nusxasini saqlab qoladi.
7) Kodim ishlamayapti, lekin hech qanday xato ko'rmayapman.
Ehtimol, siz noto'g'ri vaziyatdasiz yoki ahvolingiz noto'g'ri is_page() / is_admin() Bu kontekstga mos kelmaydi. Vaqtinchalik jurnalni qo'shing (sahnalashtirilgan) va kanca ustuvorligini tekshiring.
8) Amallar va filtrlar: ular veb-saytni chindan ham buzishi mumkinmi?
Ha. Men dasturchilarning bundan oldin ham foydalanganini ko'rganman. add_filter Qiymat tayinlamaydigan va "qaytariladigan qiymatni kutadigan" ilgakda hech narsa bo'lmaydi. Aksincha, harakatga qiymatni qaytarish ma'nosiz. Tegishli ilgak uchun hujjatlarni tekshiring.
9) WordPress 6.9.4 PHP 8.1 ni talab qiladimi?
WordPress moslik borasida pragmatik bo'lib qolmoqda, ammo 2026-yilda PHP 8.1+ tavsiya etilgan minimal daraja Barqarorlik va xavfsizlik uchun. Ko'pgina zamonaviy plaginlar allaqachon 8.1 versiyasini qabul qilmoqda.
10) Men ba'zi marshrutlarni/doimiy havolalarni o'zgartirdim va 404 ta xatolik yuz bermoqda.
Doimiy havolalaringizni qayta saqlang (Sozlamalar → Doimiy havolalar → Saqlash) va qayta yozish qoidalarini tekshiring. Bu migratsiya yoki CPT qo'shilgandan keyin juda keng tarqalgan xatodir.