Agar sizning saytingiz WordPress to'satdan butunlay bo'sh sahifani ko'rsatadi. Sans Xabar shundaki, siz "la'natlanmagansiz": siz shunchaki WordPress to'g'ri ko'rsata olmaydigan halokatli xatoga duch kelmoqdasiz.
muammo
“WSOD” (Oq oʻlim ekrani) kontentning toʻliq yoʻqligi sifatida koʻrinadi. Baʼzan siz server tomonidagi ekvivalentni, masalan, 500 xatosini yoki quyidagi kabi minimal xabarni olasiz:
HTTP ERROR 500
Yoki, agar xosting PHP xatolarini ko'rsatsa (ishlab chiqarishda kamdan-kam hollarda), shunga o'xshash narsa:
Fatal error: Uncaught Error: Call to undefined function ... in /home/.../wp-content/themes/.../functions.php:123
U qayerda va qachon paydo bo'ladi?
- Front end : bo'sh bosh sahifa yoki faqat ma'lum sahifalar (ko'pincha qisqa kod, vidjet, ma'lum bir shablonga ega sahifa).
- Administrator (/wp-admin) : tizimga kirishda oq ekran, kirish qiyin bo'lgan boshqaruv paneli yoki ma'lum bir sahifadagi oq ekran (Kengaytmalar, Tashqi ko'rinish, Muharrir...).
- Cron / rejalashtirilgan vazifalar : sayt "ishlaydi", lekin ba'zi harakatlar (elektron pochta xabarlari, importlar) to'xtaydi va siz jurnallarda xatolarni topasiz.
- REST API / AJAX Elementor/Divi/Avada endi muharrirni yuklay olmaydi, XHR so'rovlari bajarilmaydi yoki oldindan ko'rish yuklanmaydi.
Men tez-tez ko'radigan odatiy holatlar:
- Darhol keyin yangilash (WordPress 6.9.4, a ulash(mavzu, quruvchi).
- Qo'shgandan keyin parcha yilda
functions.phpyoki snippet plagini orqali. - A faollashtirilgandan so'ng "og'ir" plagin (kesh, xavfsizlik, quruvchi, elektron tijorat).
- Server tomonidagi o'zgarishdan so'ng (PHP versiyasi, OPcache moduli, xotira cheklovlari).
Bu kim uchun: Agar siz yangi boshlovchi bo'lsangiz, lekin FTP/fayl menejeringizga (yoki hech bo'lmaganda administrator paneliga) kira olsangiz, saytni to'g'ri tashxislashingiz va uni qayta ishga tushirishingiz mumkin. Oxir-oqibat, buni bilib olasiz aniq xatoni toping, aybdorni izolyatsiya qilish (plagin/mavzu/parcha), va kesh tufayli kelib chiqadigan soxta oq ekranlardan saqlaning.
Tez xulosa
- Taxmin qilmang : Nosozliklarni tuzatishni yoqing va xatoni o'qing (1-yechim).
- Izolyatsiya qilish : barcha plaginlarni o'chiring va standart mavzuga qayting (2-yechim).
- Xotirani tekshiring Ko'pgina WSODlar a dan kelib chiqadi Ruxsat etilgan xotira hajmi tugadi (3-yechim).
- Parchalar nuqta-vergul yo'q
functions.phphamma narsani oqartirish uchun yetarli (4-yechim). - qoplama : agar OPcache/CDN eski versiyani taqdim etayotgan bo'lsa, saytni ko'rmasdan "tuzatish" mumkin (5-yechim).
Alomatlar
WSOD har doim ham "shunchaki bo'sh sahifa" emas. Mana, izlash kerak bo'lgan aniq belgilar (va ular nimani taklif qilishi).
- Bo'sh sahifani to'ldiring (old tomonda) lekin / WP-admin ishlaydi: ko'pincha mavzudagi muammo, shablon, qisqa kod yoki buzilgan sahifa keshi.
- / WP-admin oq rang ham: ko'pincha halokatli PHP xatosi (plagin, mavzu, parcha) yoki xotira cheklovi.
- 500 xato brauzerda: ko'pincha halokatli PHP xatosi, server konfiguratsiyasi yoki eskirgan kodni taqdim etuvchi modul (OPcache).
- Elementor/Divi/Avada muharriri endi yuklanmaydi REST API/AJAX xatolari, xotira muammolari, plagin mojarolari (xavfsizlik/keshlash) yoki yashirin JS xatolari.
- Sayt mahalliy darajada ishlaydi lekin ishlab chiqarishda emas: PHP versiyasidagi farqlar, PHP kengaytmalari, xotira cheklovlari, server keshi, fayl ruxsatnomalari.
- Faqat ma'lum sahifalar : buzilgan qisqa kod, so'rov juda katta, cheksiz tsikl yoki xotirani to'ldiradigan rasm/resurs.
Brauzer tomonida tezkor diagnostika: konsolni (F12) oching va quyidagilarga qarang:
- Console JavaScript xatolari (ayniqsa, quruvchilar uchun foydali).
- tarmoq XHR so'rovlari
/wp-json/(REST API) yokiadmin-ajax.php500/403 da.
Nima uchun bu sodir bo'lmoqda?
Oddiy tushuntirish (yangi boshlanuvchilar uchun)
WordPress PHP kodini (mavzular + plaginlar) bajaradi. Agar PHP halokatli xatoga duch kelsa, bajarish darhol to'xtaydi. Server konfiguratsiyasiga qarab, xato yashirin bo'lishi mumkin (xavfsizlik nuqtai nazaridan) va siz faqat oq ekranni ko'rishingiz mumkin.
Shuning uchun WSOD kamdan-kam hollarda "mistik" bo'ladi. U deyarli har doim:
- un kod xatosi (plagin/mavzu/parcha),
- un resurslarning yetishmasligi (xotira/vaqt),
- yoki kesh bu sizga tuzatgan bo'lsangiz ham, buzilgan versiyasini ko'rsatadi.
Texnik tushuntirish (o'rta/pro)
Sahna ortida, xato ko'pincha WordPress kancalarini yuklash paytida yuzaga keladi. qayrilma qoziq kengaytma nuqtasidir: a harakat kodni ma'lum bir vaqtda bajaradi, a filtri qiymatni (masalan, kontentni) ishlatishdan oldin o'zgartiradi.
WordPress 6.9.4 da muammolarni bartaraf etishda kuzatganlarim bilan birga sabablari (eng tez-tez uchraydiganidan eng kam uchraydiganiga qadar):
- Plagin PHP 8.1+ bilan mos kelmaydi (yoki yangilanishdan keyin xatolik).
- Mavzu / Bolalar mavzusi : kodni kiriting
functions.phpshablonni yoki bekor qilishni WooCommerce. - Eski qo'llanmadan nusxalangan parcha (eskirgan funksiya, noto'g'ri kanca yoki kod juda erta bajarilgan).
- PHP xotirasi yetarli emas (quruvchilar + WooCommerce + xavfsizlik plaginlari = klassik kombinatsiya).
- Server keshi (OPcache) / CDN eskirgan versiyaga xizmat qiladi.
- ruxsatlar (haqiqiy WSOD uchun kamroq uchraydi, lekin 500 ta xatoga olib kelishi mumkin).
Sizga vaziyatni hal qilishga yordam berish uchun diagnostika jadvali: “alomat → tekshirish → yechim”.
| alomat | Ehtimoliy sabab | tekshiruv | qaror |
|---|---|---|---|
| Hamma joyda oq ekran | PHPda halokatli xato | WP_DEBUG + o'qishni yoqish debug.log |
1 + 2-yechim |
| 500 xato | Fatal PHP / xotira chegarasi / server keshi | Server jurnallari + debug.log |
1 + 3 + 5 yechimi |
| Admin OK, old tomoni oq rangda | Mavzu / qisqa kod / sahifa keshi | Mavzuni vaqtincha o'zgartirish + keshni tozalash | 2 + 5-yechim |
| Elementor/Divi endi muharrirni ochmaydi | REST/AJAX xatosi, xotira | Konsol + Tarmoq (XHR 500/403) | 3-yechim + “Agar bu hali ham ishlamasa” |
| Parcha qo'shgandan so'ng WSOD | Sintaksis xatosi / juda erta kanca | Oxirgi o'zgartirilgan fayl, jurnallar | 4 yechim |
Boshlashdan oldin zarur shartlar
O'zgartirishlar kiritishdan oldin saqlang. Agar biron bir fayl bilan ishlashingiz kerak bo'lsa, hech bo'lmaganda quyidagilarning nusxasini yarating:
wp-config.php- papka
wp-content(yoki hech bo'lmagandathemesetplugins)
Tavsiya etilgan texnik shartlar (2026-yil aprel holatiga ko'ra WordPress 6.9.4):
- PHP 8.1 + (minimal tavsiya etiladi). Agar siz bundan past bo'lsangiz, xatolar va zaifliklar xavfini sezilarli darajada oshirasiz.
- Ga kirish FTP / SFTP yoki xosting provayderining fayl menejeriga.
- Ideal holda a bosqichlari (sinov sayti). Ko'pgina xosting provayderlari buni bir marta bosish orqali taklif qilishadi.
Foydali (bepul) vositalar:
- So‘rov monitor (PHP xatolarini, so'rovlarini, ilgaklarini, RESTni ko'rish uchun): wordpress.org/plugins/query-monitor
- Sog'liqni saqlash tekshiruvi va muammolarni bartaraf etish (tashrif buyuruvchilarga ta'sir qilmasdan muammolarni bartaraf etish rejimi): wordpress.org/plugins/health-check
- WordPress nosozliklarni tuzatish hujjatlari: developer.wordpress.org/advanced-administration/debug/debug-wordpress
Oltin qoida: hech qachon yadroni o'zgartirmang (WordPress fayllari ichida wp-includes / wp-admin). Tuzatish plaginda, bolalar mavzusida yoki konfiguratsiyada amalga oshiriladi.
1-yechim: Nosozliklarni tuzatishni to'g'ri yoqing (va aniq xatoni toping)
Ko'rinadigan xatolarsiz bo'sh ekran sizni taxmin qilishga majbur qiladi. Bu yerdagi maqsad jurnal faylida foydalanishga yaroqli xabarni olishdir.
Qayerga aralashish kerak: faylida wp-config.php, WordPressning ildizida (bir xil darajada) wp-content).
O'zgartirishlar kiritishdan oldin saqlang. Xato yozilgan wp-config.php saytni mavjud bo'lmasligi mumkin.
OLDIN (hamma narsani yashiradigan odatiy konfiguratsiya)
Ko'pgina saytlarda hech narsa yo'q yoki to'liq bo'lmagan nosozliklar mavjud:
<?php
// ... contenu existant ...
/* C'est tout : aucune trace d'erreur exploitable. */
AFTER (tashrif buyuruvchilarga ko'rsatmasdan, nosozliklarni tuzatishga yo'naltirilgan muammolarni bartaraf etish)
Ushbu konstantalarni qo'shing (yoki sozlang). Ularni joylashtiring avant la ligne /* That's all, stop editing! */ agar u sizning faylingizda mavjud bo'lsa.
<?php
// ... contenu existant ...
/**
* Debug WordPress (WordPress 6.9.4+ / PHP 8.1+)
* Objectif : écrire les erreurs dans wp-content/debug.log sans les afficher aux visiteurs.
*/
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
// Évite d'afficher des erreurs PHP directement dans le HTML.
@ini_set( 'display_errors', '0' );
Keyin:
- Bo'sh sahifani qayta yuklang (old yoki admin).
- ochiq
wp-content/debug.logva oxirgi xatoni qidiring.
Siz ko'rishingiz mumkin bo'lgan xatolarga misollar:
PHP Fatal error: Uncaught Error: Call to undefined function my_plugin_helper() in /wp-content/plugins/mon-plugin/mon-plugin.php:88
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /wp-includes/class-wpdb.php on line ...
Nima uchun bu muammoni hal qiladi: ba'zida "WSOD" bu bosqichda tuzatilmaydi, lekin siz tiklanasiz axborot bu tezkor tuzatish imkonini beradi (ma'lum bir plagin, ma'lum bir fayl, ma'lum bir qator). Busiz siz vaqtni behuda sarflaysiz.
Tugatganingizdan so'ng: topshiring WP_DEBUG à false ishlab chiqarish maydonchasida. Agar fayl yomon himoyalangan bo'lsa, jurnalni faol saqlash server yo'llari va maxfiy ma'lumotlarni oshkor qilishi mumkin.
Rasmiy manba: WordPress’ni tuzatish
2-yechim: Plagin/mavzu ziddiyatini ajratib oling (boshlang'ich usul + "administrator ruxsatisiz" usul)
Mening tajribamda, WSOD ko'pincha halokatli xatoga olib keladigan yangilangan plagin (yoki quruvchi) dan kelib chiqadi. Maqsad: minimal konfiguratsiyaga qaytish, keyin ularni birma-bir qayta faollashtirish.
A usuli (boshlang'ich): agar sizda kirish imkoniyati bo'lsa, administrator panelidan
- borib Kengaytmalar> O'rnatilgan kengaytmalar.
- Keyin hammasini tanlang o'chirish.
- Saytni sinab ko'ring.
- Qayta faollashtirish bir vaqtning o'zida bitta kengaytma WSOD qayta yaratilgunga qadar.
Keyin, vaqtincha standart mavzuga o'ting:
- Tashqi ko'rinish > Mavzular > rasmiy mavzuni faollashtirish (ko'pincha Yigirma*).
- Qayta urinib ko'ring.
Agar siz Divi 5, Elementor yoki Avada dan foydalanayotgan bo'lsangiz: bu mavzular/quruvchilar juda ko'p kod qo'shadilar. Keshlash/xavfsizlik plagini bilan ziddiyat keng tarqalgan. "Standart mavzu + plaginlar o'chirilgan" testi bu yomon aylanishni to'xtatishning eng tezkor usuli hisoblanadi.
B usuli (administrator ruxsatisiz): FTP/SFTP orqali
Si /wp-admin oq rangda bo'lsa, FTP/SFTP dan foydalaning.
1-qadam: Barcha plaginlarni birdaniga o'chirib qo'ying
Qayerga aralashish kerak: papka nomini o'zgartirish wp-content/plugins en plugins.offWordPress plaginlarni yo'q deb hisoblaydi va ularni o'chirib qo'yadi.
# Exemple (le nom exact dépend de votre outil FTP)
wp-content/plugins → wp-content/plugins.off
Saytni sinab ko'ring. Agar muammo qaytalansa, siz "plagin(lar)ning xatosi borligini" tasdiqladingiz. Keyin qayta o'rnating:
wp-content/plugins.off → wp-content/plugins
Keyin, ichkarida pluginsPapkalarni birma-bir qayta nomlang (masalan, elementor → elementor.off) aybdorni topish uchun.
2-qadam: Agar mavzu ishdan chiqsa, zaxira mavzuni majburan o'rnatish
Agar sayt plaginlari o'chirilgan holda hali ham oq rangda bo'lsa, mavzu (yoki bola mavzusi) shubhali.
Option oddiy : Faol mavzu (yoki bola mavzusi) papkasini qayta nomlang. WordPress boshqa mavjud mavzuga o'tadi.
wp-content/themes/mon-theme-enfant → wp-content/themes/mon-theme-enfant.off
Nima uchun bu muammoni hal qiladi: siz ishdan chiqayotgan kodni yuklashni to'xtatasiz. Plagin/mavzudagi o'limga olib keladigan xato WordPressning keyingi faoliyatiga xalaqit beradi.
Agar sizga rasmiy muammolarni bartaraf etish qo'llanmasi kerak bo'lsa: Muammolarni bartaraf etish bo'yicha tez-tez so'raladigan savollar (WordPress.org)
3-yechim: Xotira yetarli emasligi sababli ishdan chiqishni tuzatish (PHP/WordPress)
Elementor/Divi/Avada + WooCommerce + xavfsizlik/keshlash plaginlaridan foydalanadigan saytlarda xotira yetarli emasligi keng tarqalgan muammo hisoblanadi. Alomat ba'zan WSOD, ba'zan 500 xatosi va ba'zan yuklashdan bosh tortadigan muharrirdir.
Odatdagi xabar debug.log :
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate ...)
1-qadam: WordPress tomonidagi xotirani oshiring (tezkor)
Qayerga aralashish kerak: yilda wp-config.php, “tahrirlashni toʻxtatish”dan oldin.
OLDIN (aniq cheklov yo'q)
<?php
// ...
AFTER (WordPressdan ko'proq xotiradan foydalanishni so'raydi)
<?php
// ...
/**
* Augmente la mémoire pour WordPress.
* Attention : si PHP a une limite plus basse, cela ne suffira pas.
*/
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' ); // Utile pour l'admin et certaines tâches lourdes.
Nima uchun u ishlaydi: WP_MEMORY_LIMIT WordPressga maqsadli xotirani aytadi. Lekin agar serveringiz pastki chegarani o'rnatsa, WordPress undan oshib keta olmaydi.
2-qadam: PHP tomonida xotira ajratmasini oshiring (ko'pincha zarur)
Xosting provayderingizga qarab, bu quyidagilar orqali amalga oshiriladi:
- turar joy paneli (tavsiya etiladi),
- fayl
php.iniou.user.ini, - yoki PHP-FPM konfiguratsiyasi (agar siz serverni boshqarayotgan bo'lsangiz).
Misol (fayl) .user.ini (ko'plab umumiy xosting xizmatlarida):
memory_limit = 512M
max_execution_time = 120
Rasmiy PHP ma'lumotnomasi (memory_limit): php.net xotira_limiti
Xotirani oshirgandan keyin nimani sinab ko'rmoqdaman
- Bo'sh sahifa yuklanmoqda.
- Muharrirni ochish (Elementor/Divi/Avada).
- Agar WooCommerce bo'lsa: savatga qo'shing, to'lovni amalga oshiring va mahsulot sahifasini yarating.
Agar saytga yana kirish mumkin bo'lsa, lekin u sekinlashib qolsa, sizda so'rov portlab ketishi mumkin (Query Monitor juda yordam beradi).
4-yechim: Buzilgan parchani (functions.php / snippet plagini) hamma narsani buzmasdan ta'mirlash
Eng asabga teguvchi stsenariy: siz "WordPressni yaxshilash uchun" 10 qator kod qo'shasiz, saqlaysiz... va hamma narsa bo'sh qoladi. Men buni ko'pincha saytlarda kod noto'g'ri faylga joylashtirilgan yoki qavs ichida yo'q bo'lgan holatlarda ko'rganman.
Shartlar:
- parcha : mavzuga qo'shilgan kichik bir kod parchasi (ko'pincha
functions.php) yoki plagin orqali. - Sintaksis xatosi PHP faylni o'qiy olmaydi (nuqta-vergul yo'q, qo'shimcha jingalak qavs...). Bu halokatli.
A holati: Kod functions.php fayliga qo'shildi (bola mavzusi)
Qayerga aralashish kerak: wp-content/themes/VOTRE-THEME-ENFANT/functions.php
Juda realistik xato: nuqta-vergulni unutish yoki jingalak qavsni yopish.
OLDIN (buzilgan: nuqtali vergul yo'q)
<?php
add_action( 'wp_enqueue_scripts', 'mon_site_styles' );
function mon_site_styles() {
// Charge une feuille de style
wp_enqueue_style( 'mon-style', get_stylesheet_directory_uri() . '/style.css' )
}
KEYIN (tuzatilgan)
<?php
add_action( 'wp_enqueue_scripts', 'mon_site_styles' );
function mon_site_styles() {
// Charge une feuille de style
wp_enqueue_style( 'mon-style', get_stylesheet_directory_uri() . '/style.css' );
}
Nima uchun bu muammoni hal qiladi: PHP ko'rsatmani tugatish uchun nuqta-vergulni talab qiladi. Busiz, tahlil xatosi yuzaga keladi va WordPress endi yuklana olmaydi.
B holati: kod juda erta kancadan foydalanadi ("hali yuklanmagan" funksiyasi)
Men duch keladigan yana bir holat: eski qo'llanmada sizning kodingiz bajarilganda hali mavjud bo'lmagan funksiyani chaqirishingiz kerak.
OLDIN (buzilgan: darhol ijro etish juda erta)
<?php
// Mauvaise idée : ce code s'exécute dès le chargement du fichier.
ma_fonction_qui_depend_de_wordpress();
function ma_fonction_qui_depend_de_wordpress() {
// Exemple : vous faites des appels à des APIs WordPress non disponibles à cet instant
update_option( 'test', 'ok' );
}
KEYIN (tuzatildi: harakat orqali bajarish)
<?php
/**
* On utilise une action pour attendre que WordPress soit chargé.
* Une "action" est un hook qui déclenche votre code à un moment précis.
*/
add_action( 'init', 'ma_fonction_qui_depend_de_wordpress' );
function ma_fonction_qui_depend_de_wordpress() {
update_option( 'test', 'ok' );
}
Nima uchun uni to'g'rilaydi: init WordPress yuklanganidan keyin ishlaydi. Bu muddatidan oldin qo'ng'iroqlarning oldini oladi.
C holati: plagin orqali parcha (WPCode, kod parchalari va boshqalar)
Agar siz parcha plaginidan foydalanayotgan bo'lsangiz, uning afzalligi shundaki, u ba'zan halokatli parchani avtomatik ravishda o'chirib qo'yishi mumkin. Lekin agar administrator paneliga kirish imkoni bo'lmasa, parcha plaginini FTP orqali o'chirib qo'ying (2-yechim) va keyin parchani tuzating.
Malumotnoma (ilgaklar): developer.wordpress.org/plugins/hooks
5-yechim: Kesh (sahifa keshi, CDN, OPcache) tufayli yuzaga kelgan noto'g'ri WSODni yo'q qiling.
Bu ko'plab yangi boshlovchilarni tuzoqqa tushiradi: siz xatoni tuzatasiz, lekin baribir oq ekranni ko'rasiz. Aslida, kesh buzilgan versiyani taqdim etmoqda.
Men buni tez-tez ko'raman:
- Cloudflare (yoki boshqa CDN) orqasidagi saytlar,
- Agressiv server keshiga ega xosting provayderlari
- joylashtirilgandan so'ng OPcache yoqilgan va noto'g'ri o'chirilgan saytlar.
1-qadam: "Ko'rinadigan" keshlarni tozalang
- Plagin keshini tozalang (LiteSpeed Cache, WP Rocket, W3TC…).
- CDN keshini tozalang (Cloudflare: “Hamma narsani tozalash” yoki maqsadli tozalash).
- Shaxsiy ko'rib chiqish rejimida + parametr qo'shish orqali sinab ko'ring:
?nocache=1
2-qadam: OPcache (server tomonida)
Agar sizda serverga kirish imkoni bo'lsa, eng samarali yechim PHP-FPM ni qayta ishga tushirishdir (stackingizga qarab). Misol (Linux):
sudo systemctl reload php8.2-fpm
Agar siz umumiy xostingda bo'lsangiz, sizda bu buyruq bo'lmaydi. Bunday holda:
- Panelda "OPcache-ni tozalash" variantini qidiring.
- yoki OPcache-ni tozalash uchun yordam so'rang (bu ko'pincha standart so'rov).
Nima uchun bu muammoni hal qiladi: OPcache PHP faylining eski versiyasini xotirada saqlashi mumkin. Siz faylni tuzatasiz... lekin PHP hali ham eski versiyasini ishga tushiradi.
Rasmiy OPcache ma'lumotnomasi: php.net OPcache
Tuzatishdan keyingi tekshiruvlar
Sayt qayta ishga tushirilgandan so'ng, men har doim bir xil "asosiy, ammo samarali" testlarni bajaraman:
- front : bosh sahifa + 2-3 ta ichki sahifa + qidiruv.
- Admin : Boshqaruv paneli, Kengaytmalar, Tashqi ko'rinish, Muharrir (agar ishlatilsa).
- quruvchilar :
- Elementor: muharrirni oching + o'zgartirishni saqlang.
- 5-bo'lim: Visual Builder-ni oching + moslashuvchan oldindan ko'rishni tekshiring.
- Avada: Fusion Builder dasturini oching va konteyner tahririni tekshiring.
- shakllari : anketani yuboring (aloqa/axborot byulleteni).
- REST API : tashrif buyurib tezkor sinov
/wp-json/(bo'sh sahifani emas, balki JSONni ko'rishingiz kerak).
Keyin:
- Qayta o'qing
wp-content/debug.log: agar u o'sishda davom etsa, sizda hali ham xatolar mavjud (hatto sayt "ishlayotgan" bo'lsa ham). - Agar siz uni ishlab chiqarishda yoqgan bo'lsangiz, nosozliklarni tuzatishni o'chirib qo'ying (1-yechim).
Agar bu hali ham ishlamasa
5 ta "boshlang'ich" yechim yetarli bo'lmaganda, men yanada tizimli protseduraga o'taman. Bu hali ham mavjud, ammo biroz usulni talab qiladi.
1) Server jurnallarini tekshiring (ko'pincha debug.log ga qaraganda ko'proq ma'lumotga ega)
Ko'pgina xosting provayderlarida boshqaruv panelida Apache/Nginx "xato jurnali" ni topasiz. Quyidagilarni qidiring:
PHP Fatal errorPremature end of script headersAllowed memory size
2) Sog'liqni saqlash tekshiruvidan foydalaning (muammolarni bartaraf etish rejimi)
Agar sizda administrator huquqi bo'lsa, Health Check plagini sizga plaginlar/mavzularni o'chirib qo'yish imkonini beradi. faqat siz uchuntashrif buyuruvchilarga ta'sir qilmasdan. Bu jonli veb-saytda juda amaliy.
Plagin: Sog'liqni saqlash tekshiruvi va muammolarni bartaraf etish
3) PHP ning haqiqiy versiyasini tekshiring
Veb-sayt PHP 8.1 da ishlayotganini "o'ylashi" mumkin, ammo subdomen yoki cron ishi 7.4 da ishlayotgan bo'lishi mumkin (men buni ko'rganman). Tekshirib ko'ring:
- Asboblar > Sayt salomatligi
- yoki xosting provayderi paneli
4) Mu-plaginlarni vaqtincha o'chirib qo'ying
Les mu-pluginlar (shartli foydalanish plaginlari) avtomatik ravishda yuklanadi wp-content/mu-pluginsUlar standart kengaytmalar ro'yxatida ko'rinmaydi. Ba'zi xosting provayderlari keshlar/xavfsizlik choralaridan foydalanadilar.
Sinov: qayta nomlash mu-plugins en mu-plugins.off FTP orqali, keyin sinovdan o'tkazing.
5) Doimiy havolalar / qayta yozish qoidalari ("admin OK, 404/500-betlar")
Bu eng sof WSOD emas, lekin ko'chish yoki plagindan keyin ko'pincha adashib ketadi. Quyidagiga o'ting:
Sozlamalar> Permalinks keyin bosing rekord (hech narsani o'zgartirmasdan).
Rasmiy hujjat: WP-CLI (professionallar uchun) (agar sizda SSH kirish imkoniyati bo'lsa, foydali, lekin bu yerda ixtiyoriy).
6) Fayl ruxsatnomalarini tekshiring (kamdan-kam uchraydigan, ammo haqiqiy)
Haddan tashqari cheklovchi ruxsatnomalar server xatolariga olib kelishi mumkin. Umumiy Linux muhitlarida biz ko'pincha quyidagilarni ko'ramiz:
- Fayllar: 755
- Fayllar: 644
Agar sizning xosting provayderingiz turli tavsiyalarga ega bo'lsa, ularga amal qiling.
Umumiy xatolar va kamchiliklar
| alomat | Ehtimoliy sabab | Tavsiya etilgan yechim |
|---|---|---|
Siz WP_DEBUG funksiyasini yoqdingiz, lekin debug.log ko'rinmaydi |
wp-content Yozib bo'lmaydi / Noto'g'ri konfiguratsiya / Yuklashdan oldin xatolik |
Ruxsatnomalarni tekshiring, keyin server jurnallariga qarang |
| Kodni joylashtirgandan so'ng darhol WSOD | Nuqtali vergul/qavs belgisi yo'q, kod noto'g'ri joyga joylashtirilgan | 4-yechim (parchani to'g'rilang), ideal holda maxsus plaginda |
| Bu shaxsiy ko'rish rejimida ishlaydi, lekin "odatda" emas. | Brauzer keshi / plagin / CDN | 5-yechim (tozalash) + minifektsiyani vaqtincha o'chirib qo'yish |
| Elementor/Divi/Avada endi muharrirni ochmaydi | Xotira, REST/AJAX xavfsizlik tomonidan bloklangan, plaginlar bilan ziddiyat | 3-yechim + konsolni tekshirish + xavfsizlik plaginini o'chirish |
| Siz eski qo'llanmaga amal qildingiz | WordPress 6.9.4 / PHP 8.1 bilan mos kelmaydigan kod | Joriy ilgaklar yordamida yondashuv bilan almashtiring, bosqichma-bosqich sinovdan o'tkazing |
| Siz ota-ona mavzusini o'zgartirdingiz | Yangilanish paytida modifikatsiyalarning yo'qolishi, sinish xavfi | Bola mavzusiga yoki maxsus plaginga qaytish ("Qochish" bo'limiga qarang) |
| WSOD "tuzatish" dan keyin qaytadi | OPcache/CDN hali ham eski versiyaga xizmat qiladi | 5-yechim (iloji bo'lsa, PHP-FPM ni tozalash + qayta yuklash) |
Men ko'rgan eng keng tarqalgan "insoniy" xatolar:
- Parchani joylashtiring yomon fayl (masalan, shablon o'rniga
functions.php). - Unutish qavs yoki nuqta-vergul.
- Chalkashtirib yuborish uchun harakat et filtri (masalan, foydalanish)
add_actiono'rnigaadd_filter). - To'g'ridan-to'g'ri sinovdan o'tkazing Ishlab chiqarish zaxira nusxasisiz.
- Unutishni unutish keshni bo'shatish tuzatishdan keyin.
Variant / muqobil
Kodsiz usul (agar siz yangi boshlovchi bo'lsangiz tavsiya etiladi)
Agar siz administrator paneliga kira olsangiz, quyidagilarni o'rnating:
- Sog'liqni saqlash nazorati Faqat sessiyangiz uchun plaginlar/mavzularni o'chirib qo'yish uchun: wordpress.org/plugins/health-check
- So‘rov monitor Xatolarni o'qish va nosoz kanca yoki plaginni aniqlash uchun: wordpress.org/plugins/query-monitor
Bu onlayn saytdagi eng xavfsiz usul: siz tashrif buyuruvchilar tajribasini buzmasdan tadqiqot o'tkazasiz.
Keyinchalik rivojlangan usul (ishlab chiquvchilar uchun): mu-plagin zaxira nusxasi
Agar siz tez-tez muammolarni bartaraf etsangiz (yoki bir nechta saytlarni boshqarsangiz), siz yaratishingiz mumkin mu-plagin (Avtomatik ravishda yuklanadi) minimal jurnal yozishni majburlash va xatolarni ko'rsatishning oldini olish uchun.
Kodni qayerga joylashtirish kerak: faylni yarating wp-content/mu-plugins/00-rescue.php (agar papka mavjud bo'lmasa, uni yarating).
<?php
/**
* Plugin Name: Rescue minimal
* Description: Aide au dépannage : loggue des infos minimales si le site plante tôt.
* Author: Votre Nom
*
* Attention : ceci ne remplace pas WP_DEBUG. C'est un filet de sécurité.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Exemple : log simple pour confirmer que WordPress charge bien les mu-plugins.
error_log( '[Rescue] mu-plugin chargé' );
Xavflar: Jurnallarga juda ko'p ma'lumot yozish ularni to'ldirishi mumkin. Ushbu faylni minimal darajada saqlang va muammolarni bartaraf etgandan so'ng uni o'chirib tashlang.
Mu-plaginlar haqida rasmiy ma'lumotnoma: developer.wordpress.org/advanced-administration/plugins/mu-plugins
Kelajakda bu muammodan qoching
Odatlaringizni o'zgartirmasdan tezkor tuzatishlar kiritganingizda WSODlar qayta paydo bo'ladi. Xavfni aslida nima kamaytiradi.
1) O'zgartirishlaringizni functions.php faylida emas, balki maxsus plaginda amalga oshiring
Qayta ishlatiladigan parchalar uchun men kichik, maxsus tayyorlangan plaginni afzal ko'raman. Afzalligi shundaki, siz uni mavzuga ta'sir qilmasdan bir marta bosish bilan o'chirib qo'yishingiz mumkin.
Kodni qayerga joylashtirish kerak: yaratish wp-content/plugins/mon-plugin-custom/mon-plugin-custom.php, keyin uni faollashtiring.
<?php
/**
* Plugin Name: Mon plugin custom
* Description: Snippets stables pour ce site (WordPress 6.9.4+ / PHP 8.1+).
* Version: 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Exemple : on accroche un code sur une action.
*/
add_action( 'init', function () {
// Code sûr : exécuté après le chargement de WordPress.
} );
2) Bosqichma-bosqich rejasini amalga oshiring
Sahnalashtirish muhitida yangilanishlarni (WordPress, plaginlar, mavzular, quruvchilar) sinab ko'ring. Bu "5 daqiqalik stress" va "2 soatlik vahima" o'rtasidagi farq.
3) PHP 8.1+ mosligini tekshiring
PHP versiyasi yangilangandan so'ng, ta'mirlanmagan plagin ishlamay qolishi mumkin. Plagin sahifasida (wordpress.org) moslikni tekshiring va o'zgarishlar jurnallarini kuzatib boring.
4) Favqulodda kirishni saqlang
- Funktsional SFTP/FTP kirish
- Xosting boshqaruv paneliga kirish (jurnallar, PHP versiyasi, kesh)
- Kundalik zaxira nusxasi (ideal holda tashqi)
5) Kesh: "tozalash yo'lingizni" hujjatlashtiring
CDN + plagin keshi + server keshiga ega saytlarda qayerni tozalash kerakligini aniq ko'rsating. Aks holda, siz tuzatishni ko'rmasdan turib biror narsani "tuzatasiz".
resurslari
- WordPressni nosozliklarni tuzatish (rasmiy): developer.wordpress.org/advanced-administration/debug/debug-wordpress
- Hooklar (harakatlar va filtrlar): developer.wordpress.org/plugins/hooks
- MU-plaginlari: developer.wordpress.org/advanced-administration/plugins/mu-plugins
- So'rov monitori (plagin): wordpress.org/plugins/query-monitor
- Sog'liqni saqlash tekshiruvi (plagin): wordpress.org/plugins/health-check
- Muammolarni bartaraf etish (WordPress.org): wordpress.org/documentation/article/faq-muammolarni bartaraf etish
- PHP xotira_limiti: php.net/manual/en/ini.core.php#ini.memory-limit
- OPcache (PHP): php.net/manual/en/book.opcache.php
- WordPress manba kodi (GitHub oynasi): github.com/WordPress/wordpress-develop
tez-tez so'raladigan savollar
WSOD, albatta, plagindan keladimi?
Yo'q. Mavzu, bola mavzusi, parcha, xotira yetarli emasligi yoki server keshi barchasi bir xil alomatni keltirib chiqarishi mumkin. Eng tezkor usul qolmoqda: debug.log + ommaviy o'chirish (1 + 2-yechim).
Nima uchun men hech qanday xato xabarlarini olmayapman?
Chunki ko'pgina serverlar ishlab chiqarishda PHP xatolarini yashiradi. Bu normal holat (xavfsizlik). Jurnalga kirishni yoqish WP_DEBUG_LOG xatoni tashrif buyuruvchilarga ko'rsatmasdan olish uchun.
Buni FTPsiz tuzata olamanmi?
Ha, agar sizda administrator huquqi bo'lsa: Sog'liqni saqlash tekshiruvi + plaginlarni o'chirib qo'yish ko'pincha yetarli. Administrator huquqisiz fayllarga kirish (FTP/SFTP) eng to'g'ri yo'ldir.
Mening veb-saytim faqat bitta sahifada oq rangda, hamma joyda emas. Nima uchun?
Bu sahifa, ehtimol, ma'lum bir kodni ishga tushiradi: qisqa kod, vidjet, shablon, resursga boy so'rov yoki xotira tugab qolgan kontent. Nosozliklarni tuzatishni yoqing, so'ngra foydalanish mumkin bo'lgan izni olish uchun aynan shu sahifani qayta yuklang.
Elementor muharrirda oq ekranni ko'rsatadi: xuddi shundaymi?
Ko'pincha ha, lekin muammo REST API/AJAX tomonida bo'lishi mumkin. Tarmoq yorlig'ini tekshiring: agar so'rovlar bo'lsa /wp-json/ ou admin-ajax.php 500 ni qaytaring, PHP xatosini (1-yechim) yoki xotira yetishmasligini (3-yechim) qidiring.
Tuzatgandan keyin ham oq ekranni ko'ryapman. Nima qilishim kerak?
Keshlash haqida o'ylab ko'ring: shaxsiy brauzer, plaginlarni tozalash, CDNni tozalash va iloji bo'lsa, OPcacheni tozalash (5-yechim). Bu juda keng tarqalgan tuzoq.
Ishlab chiqarish maydonchasida WP_DEBUG ni yoqish xavflimi?
Agar siz ekranda xatolarni ko'rsatsangiz, ha (siz maxfiy ma'lumotlarni oshkor qilishingiz mumkin). Agar siz faqat tizimga kirsangiz (WP_DEBUG_DISPLAY à falseAsosiy xavf katta jurnal faylini yaratishdir. Muammolarni bartaraf etgandan so'ng uni o'chirib qo'ying.
Qaysi faylni o'zgartirishim kerak: functions.php, wp-config.php yoki .htaccess?
Tashxis qo'yish uchun: wp-config.php (1-yechim). Parchani tuzatish uchun: functions.php bola mavzusidan yoki undan ham yaxshiroq maxsus plagindan (4-yechim / “Qochish”). .htaccess WSODlarning aksariyati uchun emas, balki qayta yozish/doimiy havola muammolari uchun ko'proq.
Plaginni o'chirganimda sayt qayta paydo bo'ladi, lekin menga u kerak. Nima qilishim kerak?
Aniq xatoga (fayl/satr) e'tibor bering va plaginni yangilang, so'ngra xato jurnali bilan ishlab chiquvchiga murojaat qiling. Bu orada, muqobil variantni qidiring yoki faqat xatoni ishga tushiradigan funksiyani o'chirib qo'ying (ko'pincha keshlash/minifikatsiya/xavfsizlik).