PHP ilovasi uchun plaginlarga ruxsat berishning eng yaxshi usuli. PHP kodini WordPress-ga vidjetlar orqali kiritish Retreat plagin php

PHP ning 7-versiyasi yaqinda 2015 yilda chiqarilgan. Ushbu dasturlash tilini rivojlantirishning yangi bosqichi barcha PHP dan foydalanadiganlar uchun ko'plab imkoniyatlarni taqdim etdi. Yangi versiyaning afzalliklari orasida tezlikni ta'kidlash kerak. Shunday qilib, ishlab chiquvchilarning fikriga ko'ra, PHP 7 da skriptlarning tezligi oldingi versiyalarga nisbatan deyarli ikki barobarga oshgan. Shu munosabat bilan, PHP ning eski versiyalari o'rnatilgan ko'plab veb-sayt egalari yangisiga o'tishni xohlashadi.

Nima uchun moslikni tekshirish kerak?

Shuni ta'kidlash kerakki, hostingingizning boshqaruv panelida PHP versiyasini yangiroq va tezroq versiyaga o'zgartirishdan oldin, WordPress saytining unga muvofiqligini, xususan, mavzular va plaginlarni tekshirishingiz kerak. Bu ehtiyoj odatda dasturiy ta'minotning yangi versiyalarida ba'zi funktsiyalar qo'shilganligi va ba'zilari umuman mavjud bo'lmaganligi sababli yuzaga keladi. Agar plagin yoki mavzu yangi versiyada mavjud bo'lmagan funksiyalar yoki usullardan foydalansa, bu xatolik belgisi bo'lib, umuman sayt ishini buzishi mumkin.

PHP 7.0 bilan mosligini qanday tekshirish mumkin? PHP muvofiqligini tekshirish plagini

PHP muvofiqligini tekshirish plagini butun saytni skanerlash va uning qaysi komponentlari (mavzular, plaginlar) PHP ning tanlangan versiyasiga mos kelmasligini ko‘rsatish imkonini beradi. Avval siz uni o'rnatishingiz va faollashtirishingiz kerak, keyin boshqaruv paneliga o'ting Asboblar -> PHP muvofiqligi.

Ko'rib turganingizdek, plagin juda aniq sozlamalarni taklif qiladi. Tekshirishni boshlash uchun siz saytning mosligini tekshirmoqchi bo'lgan PHP versiyasini tanlashingiz kerak (PHP Version bloki). Plaginning qulay vazifasi tekshirilayotgan komponentlarning holatini tanlashdir. Tanlash uchun ikkita variant mavjud: faol mavzular va plaginlarni yoki faol bo'lmaganlarini tekshiring (Plugin / Mavzu holati maydoni). Skanerlashni boshlash uchun Saytni qayta skanerlash tugmasini bosing.

Sinov natijasini “Hisobotni yuklab olish” tugmasini bosish orqali matnli faylda ham yuklab olish mumkin.

WordPress bilan tanish bo'lgan har bir kishi mavzu (shablon) functions.php fayli haqida eshitgan. Biroq, hamma ham uning maqsadini yaxshi tushunmaydi, uni faqat turli xil PHP funktsiyalarini saqlaydigan fayl sifatida ko'radi. Internetda, mening saytimda bo'lgani kabi, ko'pincha ushbu faylga PHP kodini qo'shish tavsiya etiladi. Biroq, har bir kod bu fayl uchun ishlamaydi. Bu ishlamasligi uchun emas, balki foydalanish mantiqiga to'g'ri kelmagani uchun.

Bundan tashqari, functions.php-ni tahrirlashda yangi boshlanuvchilar xato qiladilar, buning natijasida sayt ishlashni to'xtatadi.

Ushbu maqolada men ushbu fikrlarning barchasini ko'rib chiqishga harakat qilaman: functions.php-dan qachon foydalanish kerak va qachon buni qilmaslik yaxshiroq, functions.php-ni tahrirlashda qanday xatolar paydo bo'lishi mumkin.

Funktsiyalar functions.php

functions.php mavzu papkasida joylashgan va har safar saytning tashqi qismini ko'rishda, administrator panelida va hatto AJAX so'rovlari paytida yuklanadi. Functions.php ilovasi qo'shilmaydi va bu ishlab chiquvchilar uchun keng imkoniyatlar ochadi.

Masalan, mavzuning functions.php fayliga kiritilgan quyidagi kod post eskizlarini qo‘llab-quvvatlash orqali mavzu imkoniyatlarini kengaytiradi:

Add_action("o'rnatishdan_keyin", "wp_kama_theme_setup"); funktsiya wp_kama_theme_setup())( // Eskizni qo'llab-quvvatlash add_theme_support("post-thumbnails"); )

Yana bir misol, kod WordPress boshqaruv panelining pastki qismidagi matnni ma'lumotlar bazasi so'rovlari soni, sahifa yaratish vaqti va xotiradan foydalanish haqidagi ma'lumotlar bilan almashtiradi:

## Admin panelidagi ma'lumotlar bazasiga so'rovlar soni haqidagi ma'lumotlar add_filter("admin_footer_text", "wp_usage"); // administrator panelida add_filter("wp_footer", "wp_usage"); // veb-saytda wp_usage())( echo sprintf(__("SQL: %d in %s sek. %s MB", "km"), get_num_queries(), timer_stop(0, 3), round(memory_get_peak_usage () /1024/1024, 2)); )

functions.php va plaginlar

- "Plaginlar functions.php faylidagi koddan sekinroq ishlaydi", deydi johillar - bu to'g'ri emas!

Nazariy jihatdan, functions.php ga kod kiritish plaginni o'rnatish bilan bir xil, ammo bu bir xil narsa emas. Axir, biz mavzuni o'zgartirganimizda, biz butunlay boshqacha functions.php-ga ega bo'lamiz va kiritilgan barcha o'zgarishlar yo'qoladi, lekin mavzu qanchalik o'zgartirilmasin, plagin qoladi. Shu sabablarga ko'ra biz functions.php fayliga murojaat qilishimiz kerak. Agar qo'shilgan funksionallik nafaqat mavzuga, balki umuman saytga ham tegishli bo'lsa, uni plagin sifatida ulash haqida o'ylashingiz kerak.

Yuqoridagi ikkinchi misol "Administrator paneli altbilgisidagi ma'lumotlar bazasiga so'rovlar soni to'g'risidagi ma'lumotlar". Mantiqan u functions.php faylida foydalanish uchun mos emas. Chunki shablonni o'zgartirsak, biz bu funksiyani yo'qotamiz, lekin u administrator panelida ishlatiladi va qaysi mavzudan qat'i nazar, kerak bo'ladi.

Keling, uni functions.php dan olib tashlaymiz va uni plaginga aylantiramiz - bu oson!

Plagin yaratish uchun quyidagi kod bilan fayl yaratishingiz kerak (fayl nomi har qanday boʻlishi mumkin), uni wp-content/plugins/ plagin katalogiga qoʻshing va administrator panelida plaginni faollashtiring:

. Odatda, agar siz kiritayotgan kodning boshida va oxirida ushbu teglar bo'lsa, ularni olib tashlash kerak. Shuningdek, functions.php fayli ekranda hech qanday matnni (HTML kodi yoki boshqa kontent) ko'rsatmasligi kerak. Matn chiqarishga faqat keyinchalik shablonda ishlatiladigan yoki ilgaklarga biriktirilgan funksiyalar ichida ruxsat etiladi (batafsil ma’lumot uchun quyida ko‘ring).

dan oldin hech qanday belgilarga ruxsat bera olmaysiz, shu jumladan ko'rinmas belgilar (satr uzilishlari), chunki functions.php http sarlavhalarini o'rnatishdan oldin ulanadi (bunday sarlavhalar turli ma'lumotlarni uzatadi, masalan, bu html hujjati; utf-8 kodlash boshqacha. ). PHP qoidalariga ko'ra, sarlavhalar yuborilgandan so'ng kontent ekranda ko'rsatilishi kerak. Va tashqaridagi hamma narsa tarkib - ekranda ko'rsatilgan matn, hatto ko'rinmas \n belgi. Shuning uchun bu matn xatolikka sabab bo'ladi.

Xatolarga yo'l qo'ymaslik uchun 4 nuqtani ko'rib chiqing: №1 To'g'ri joylashtirish

Masalan, bizda shunday tuzilma bor edi:

.......Mana kod............ ?>

To'g'ri shunday:

#2 Satr uzilishlari, bo'shliqlar, oldin matn yo'q

Ushbu kod xatoga olib keladi:

Lekin bu shunday emas:

Buni shunday yozish mantiqiyroq:

Funktsiyalar.php ning eng oxirida qator uzilishi qo'yiladi va keyin bu haqiqiy muammoga aylanadi, chunki hamma narsa to'g'ri ko'rinadi, lekin sayt ishlamayapti. Aslida keyin?> yoki oldin bo'sh qator mavjud

Shu sababli, ko'pgina ishlab chiquvchilar ?> yopish tegini butunlay olib tashlashadi; bu PHPda qabul qilinadi. Men har doim buni qilishni tavsiya qilaman:

PHP funktsiyalari ichida

Agar functions.php da funksiya mavjud bo'lsa, u holda bu funksiya ichida teglardan foydalanish mumkin, masalan, funksiya ichidagi HTML kodni vizual tarzda ajratib ko'rsatish uchun:

bu html kodi

Haqiqat shundaki, bu holda funktsiya faqat ro'yxatga olinadi va hech qanday harakat qilmaydi. Funktsiya ichidagi hamma narsa (( ) oralig'ida) bu funksiya chaqirilmaguncha ishlamaydi va bunday funksiyalar odatda HTTP sarlavhalari yuborilgandan so'ng shablon yoki filtrlar orqali chaqiriladi. Demak, bu misolda biz qator uzilishlarini e'tiborsiz qoldirib, ?> va dan foydalanishimiz mumkin