WordPress uchun kodning asosiy qo'shimchalari (parchalari). WordPress uchun plaginni qanday yozish kerak ma'lumotlar bazasiga so'rov

Salom, aziz o'quvchilar! Tegishli kod bo'laklarini (qo'shimchalarini) aniq tanlash muhimligini allaqachon tushungan edim. Protein bir-biriga qaradi. Bugungi maqola saytni dvigatelda ishlatish uchun kengaytirilishi yoki yanada rivojlanishi mumkin bo'lgan kod qismlariga qaratiladi. Bonus 10 ta kod fragmentidan iborat. Qani boshladik:

Plaginsiz havoladan keyingi navigatsiya

Dinamik mualliflik huquqi matni

Ushbu parcha podvalda oddiy mualliflik huquqi matnini yaratishga imkon beradi. Sana avtomatik ravishda o'rnatiladi, funksiya tanlanadi the_date().
Faqat fragmentni o'zingizdan nusxa ko'chiring footer.php:

< b>(c)
| < a href= "" >
|

Koristuvach haqida ma'lumot

WordPress hissa qo'shuvchilarga WP Admin profiliga o'zlari haqidagi ma'lumotlarni qo'shish imkonini beradi. Muxbirlarning ma'lumotlarini ko'rsatish uchun siz ushbu parchani ko'rishingiz mumkin:

Tugmani ishlatish uchun faylga keyingi qatorni qo'shib, ga ulanishingiz kerak header.php:

< script type= "text/javascript" src= "https://apis.google.com/js/plusone.js">

Matn uchun PHP kodi

Maqola yozishda siz kod kiritishingiz kerak bo'lishi mumkin, aks holda uni oddiygina kiritsangiz, u ko'rinmaydi. Ushbu fragmentni yagona aniqlash uchun uni faylga qo'shish kerak function.php bular:

Teglardagi bo'shliqlarni tozalashni unutmang!
Va kelgusi tartibda, kiritish kerak bo'lgan joyda PHP Kod shunday ko'rinadi:

[kod][/kod]

Asosiy sahifadan xabarlarni yoqing

Asosiy sahifadan istalgan toifadagi barcha yozuvlarni o'chirish uchun siz ushbu fragmentni tanlashingiz va uni faylga qo'shishingiz mumkin function.php Sizning mavzularingiz:

1
2
3
4
5
6
7
8
9

funktsiya excludeCat($query) (
agar ( $query -> is_home ) (
$query -> set ("mushuk", "-3,-5,-23");
}
$so'rovni qaytarish;
}
add_filter("pre_get_posts", "excludeCat");
?>

Plaginsiz "Bread Crumble"

Xo'sh, gazak sifatida, blogda uning yordami bilan ushbu kod bo'lagi, agar post ko'rinishida yo'l paydo bo'lsa, navigatsiyaning qo'shimcha elementi sifatida "non bo'laklari" deb nomlanishi mumkin. toifa va maqsadlar sahifasidagi daraja uchun sahifaning yon tomoni. Shunga o'xshash narsa (Bosh->1-toifa->Statistika nomi). Ushbu kod qismi faylga kiritilishi kerak function.php Sizning mavzularingiz:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

the_breadcrumb() funksiyasi (
aks-sado "

    " ;
    agar (! is_home() ) (
    aks-sado "
  • echo get_option("uy");
    echo "">";
    aks-sado "Golovna";
    aks-sado "
  • " ;
    agar (is_category() || is_single() ) (
    aks-sado "
  • " ;
    the_category("
  • " ) ;
    agar (is_single() ) (
    aks-sado "
  • " ;
    the_title();
    aks-sado "
  • " ;
    }
    ) elseif (is_page() ) (
    aks-sado "
  • " ;
    echo the_title();
    aks-sado "
  • " ;
    }
    }
    elseif (is_tag()) (bitta_tag_title();)
    elseif (is_day() ) ( echo "
  • " ; the_time("F jS, Y" ) ; echo " uchun arxivlar
  • " ; }
    elseif (is_month()) ( echo "
  • " ; the_time("F, Y" ); echo " uchun arxivlar
  • " ; }
    elseif (is_year() ) ( echo "
  • " ; the_time("Y" ) ; echo " uchun arxivlar
  • " ; }
    elseif (is_author() ) ( echo "
  • Muallif arxivi"; aks-sado "
  • " ; }
    elseif (isset ($_GET [ "sahifalangan" ] ) && ! bo'sh ($_GET [ "sahifalangan" ] ) ) ( echo "
  • Arxiv"; echo "
  • " ; }
    elseif (is_search()) ( echo "
  • Natijani qidiring"; aks-sado "
  • " ; }
    aks-sado "
" ;
}
?>

Fayllar uchun quyidagi funksiyadan foydalanish uchun (archive.php, category.php, page.php, single.php, search.php)

"Non pishiriqlari" ning tashqi ko'rinishi go'zallikdan uzoqlashtiradi) Keyin siz uslublar ustida ishlashingiz kerak bo'ladi!

Hozircha hammasi shu =)

Eng so'nggi maqolalar va darslardan xabardor bo'lish uchun obuna bo'ling

Eriyapti, do'stlar. Bugun biz vidjetlar, maqolalar va WordPress sahifalarida har qanday PHP kodini qanday samarali qayta ishlashni aniqlaymiz. Sahna ortida CMSning bunday funktsiyasi mavjud emas va mijoz to'lashi mumkin bo'lgan maksimal narsa HTML kodidan foydalanishdir.

Nima uchun PHP kodi to'g'ri ishlamaydi

Nima uchun ishlab chiquvchilar PHP kodini avtomatik tahrirlashning ajoyib imkoniyatlariga ega mashhur va kuchli dvigatelni yuklamaganiga hayron bo'lish mumkin. Dastlab, men bu haqda o'ylagandim, ammo kelajakda bu siyosat xavfsizlik nuqtai nazaridan amalga oshirilmoqda va PHP vidjetlarda yoki yozuvlar o'rtasida ishlatilmasa ham, bu noto'g'ri natijalarga olib kelishi mumkin - ma'lumotlar bazasi va butun Quack veb-sayti yo'q qilinishi haqida.

Shuning uchun, PHP bilan ishlash dasturchilar yoki ozmi-ko'pmi, o'z dietasiga yopishib qolgan odamlarning poraxo'rligiga beriladi - har qanday holatda ham, fayllar har qanday skriptlar bilan tugaydi.

Ommaviy saytlar uchun (bir nechta mualliflar mavjud) PHP-ni maqolaning asosiy qismidan olib tashlash haqiqiy sabotaj xavfini keltirib chiqaradi, chunki har qanday muallif maqolani tahrirlash oynasi orqali saytga kirishni rad etishi mumkin.

Ishonchsizlik darajasidan tashqari, men ushbu vaziyatni 3 darajaga ajratdim:

  1. Chakana sotuvchilar niyat qilganidek, hamma narsani yo'qotib qo'ying - xavfsiz, vipadkovo chi navmisne poshkoditi saytini katlama.
  2. PHP-ni vidjetlarga o'rnatishga ruxsat berish, agar sayt administratori kirish huquqiga ega bo'lmasa, o'rtacha darajadagi xavfsizlikdir.
  3. Kodni to'plash xavfsiz emas, saytning parchalari nozik bo'lishi mumkin, ular maqolalar va sahifalarni tahrirlashlari mumkin (moderatorlar, mualliflar)

Nima uchun vidjetlarga PHP kerak?

Oziqlanish individualdir, shuning uchun qo'shimcha dasturlash yordamida har qanday narsani istalgan vaqtda amalga oshirish mumkin. Ayniqsa, ushbu ekishni yozishdan oldin, men hozirda qurayotgan saytni mijozning iltimosidan ilhomlantirdim. Keyinchalik, qo'shni vidjetdagi yon panelda bitta sarlavhadan - "Yangi mahsulotlar" ro'yxatini ko'rsatish kerak edi. Standart WordPress vidjetlari bunday imkoniyatga ega emas.

Oziq-ovqat noyob imkoniyatlarga ega plaginni qidirish va noqulay PHP kodining turg'unligi o'rtasida turdi. Bunday vazifa uchun skript haqiqatan ham kichik va men saytni boshqa joyda ishlatilmaydigan ajoyib plagin bilan sozlashni xohlamadim.

PHP yordamida biz 2 ta buyruq yaratishimiz mumkin:

  • Saytning ba'zi plaginlarini skriptlar bilan almashtiring va hosting narxini kamaytiring;
  • Ba'zi plaginlar uchun funktsiyalarni qanday amalga oshirish hali ham noma'lum.

Birinchi bosqichda men vidjetlar haqida gapiraman, keyin esa kontentdagi kodni ko‘rsatish uchun blok qo‘shaman.

Vidjetlarda PHP uchun plaginlar

Plaginlarning afzalligi: WordPress dizaynidagi mavzularni o'zgartirganda, shablonga qo'shish funktsiyasi buzilmaydi, hamma narsa veb-ustaning kiritishiga ta'sir qilmasdan ishlashda davom etadi. Agar siz shablonga qo'shilgan ilgaklarni o'zgartirsangiz, ularni qo'lda yangisiga o'tkazishingiz kerak bo'ladi.

Mening arizamda men mijoz uchun veb-sayt qurmoqdaman va agar u dizaynni o'zi o'zgartirmoqchi bo'lsa, unda hech qanday tuzatishlar bo'lmaydi, masalan, functions.php fayllari va boshqalar orqali yaratilganlar, shuning uchun men qilaman. plaginlarga tayanib saytni boshqarish imkon qadar sodda (darvoqe). ko'proq, Bizning trafik kichik va talab ko'p bo'lmaydi).

PHP kod vidjeti

Men ushbu plaginni o'z ishimda uzoq vaqtdan beri ishlatib kelmoqdaman, u mavjud vidjetlar ro'yxatiga qo'shiladi, asl matn vidjetiga o'xshash, faqat matn va HTML va PHPni qayta ishlash uchun yaratilgan.

PHP kod vidjeti rasmiy WordPress omborida, uni nomi bilan osongina topishingiz mumkin. Bunday plaginlarni qanday o'rnatish kerak.

Hech qanday konfiguratsiya talab qilinmaydi; plaginni o'rnatish va faollashtirishdan so'ng vidjet darhol ro'yxatda paydo bo'ladi. PHP kodini yon panelga torting va u yerga istalgan skriptni qo'shing.

Plaginsiz WordPress vidjeti uchun PHP

Bunday holda, bizga standart funktsiyani almashtiradigan kanca kerak bo'ladi, u PHP-ni qayta ishlashga imkon beruvchi WordPress matn vidjetini taqdim etadi.

Bunday ilgak functions.php fayliga iplar orqali qo'shiladi (masalan, kamonni yopishdan oldin?>). Natijada, plagin bilan birga keladigan vidjetning yangi versiyalari mavjud emas va PHP kodlari standart matnda qayta ishlana boshlaydi.

Tayyor kod:

Add_filter("vidjet_matn", "matn_html_php_vidjet", 100); funktsiya text_html_php_widget($text) (if(strpos($matn,")".$text); $text = ob_get_contents(); ob_end_clean(); ) $textni qaytaring; )

Birinchi qatorda filtr mavjud bo'lib, uni bosgandan so'ng standart matn vidjeti funksiyasini yangisi - text_html_php_widget bilan almashtiradi va keyin yangi funksiyaning tavsifi mavjud.

WordPress-dagi maqola va postlar uchun PHP kodi

PHP kodini yozish o'rtasida kod vidjetlarga qaraganda ancha oldinroq kerak bo'ladi, shuning uchun men ushbu maqolaning birinchi qismida potentsial xavfli funktsiyalarni keraksiz ravishda yoqishdan qochishingiz uchun yon panelni diqqat bilan ko'rib chiqdim.

Biroq, postlar skriptlarni talab qilishi mumkin. Eng keng tarqalgan foydalanish plaginsiz saytda kartani ko'rsatishdir. Biroq, karta uchun siz boshqa texnikadan foydalanishingiz mumkin - maxsus yon shablonni yarating (mavzu bilan bir xil emas).

Men bir marta keyingi bosqich uchun PHP ga kirishim kerak edi:

Men video sayt ustida ishlayapman. Serialning epizodlari fasllardan keyin pleylistlarda ko'rsatildi va har bir pleylist ostida fasl sizning sahifangizga yuborilgan epizodlar ro'yxatini ko'rsatishi kerak edi. Bu sayt xaritasiga o'xshaydi, lekin u ko'proq katlanadigan - asosiy xususiyatlar boshqa sarlavhalar ro'yxatini talab qiladi. Teri xabari uchun HTML kodini qo'lda yozish mumkin edi, lekin yuzlab epizodlar mavjud va protsedura zerikarli. Tim ko'proq, yangi seriya paydo bo'lishi uchun undagi xabar qo'lda emas, balki qo'lda qo'shilishi kerak edi. Amalga oshirish uchun PHP funksiyalariga tayanishga qaror qildim.

Exec-PHP da PHP kontenti uchun plagin

Ushbu plagin 7 yil davomida yangilanmaganiga qaramay, u mo''jizaviy tarzda muammolarni engadi. Va men buni bir sababga ko'ra tanladim - u raqobatchilar kabi qisqa kodlarni ishlatmaydi, lekin WordPress postlariga kodni aniq ko'rinishda kiritish imkoniyatini beradi. .

Exec-PHP plagini omborda va uni vosita boshqaruvidagi menyu orqali o'rnatish mumkin.

Faqat bitta sozlash mavjud - matn vidjetida yozish kodini ruxsat berish/o'chirish, postlarda va kun sahifalarida ishlashni yoqish imkoniyati, agar siz uni qabul qilishingiz kerak bo'lsa - plaginni o'chirib qo'ying.

Maqolaga PHP kodini kiritish uchun siz HTML rejimiga o'tishingiz kerak (Matn yorlig'i). Hamma narsa uchun yaxshiroq bo'lgan vizual rejim, kod ziplangan.

Vikonannya PHP kodi WordPress maqolalarida plaginsiz

Vidjetlarga o'xshab, plaginni kontentga PHP skriptlarini qo'shish imkonini beruvchi maxsus funksiya bilan almashtirishimiz mumkin. Afsuski, kod avtomatik ravishda ishga tushadigan variantni topa olmadim, masalan, plaginlar teglarga javob beradi. Qisqa kodli wiki kerak. PHP bo'yicha bilimim kerakli funksiyani o'zim yozish uchun etarli emas, men so'ragan narsa shu. Qisqa kod bilan ishlash ishni murakkablashtiradigan kichik qismga ega, men buni quyida muhokama qilaman.

Quyida tasvirlangan funksiyadan qanday foydalanish kerak

  1. Biz buni functions.php fayliga joylashtiramiz;
  2. Statistikaning kerakli joyiga konstruktsiya kiritiladi - kodsiz qo'shilishi mumkin

Funktsiya:

/* WordPress maqolalari va sahifalarida php-ni ishga tushiring: kod */ funktsiya start_php($matches)( eval("ob_start();".$matches."$inline_execute_output = ob_get_contents();ob_end_clean();"); return $ inline_execu ; ) funktsiyasi inline_php($content)( $content = preg_replace_callback("/\((.|\n)*?)\[\/startphp\]/", "start_php", $content); $content = preg_replace ( "/\((.|\n)*?)\[\/startphp\]/", "$1", $content); return $content; ) add_filter("the_content", "inline_php");

Nestacha

Agar PHP kodining o'rtasida HTML qo'shimchalari yoki matn bo'lsa, u holda unga ishlov berilmaydi. Har qanday matn yoki teglar echo buyrug'i yordamida kiritilishi kerak bo'ladimi, buni qo'lda qilishingiz shart emas. Kod 100% to'g'ri formatda sof PHP.

To'g'ri

Echo "Shunday qilib, siz mashq qilasiz";

Noto'g'ri

Echo "Bu qator to'g'ri"; Shuning uchun mashq qilmang

Exec-PHP plaginida bunday muammo yo'q - matn ham, HTML ham ko'rsatiladi, lekin PHP kodining barcha elementlari tegishli teglar bilan ramkalanadi.

Boy webmasterlar uchun ushbu maqolada tasvirlangan mavzu ijodkorlik uchun cheksiz imkoniyatlarni ochadi - siz ilgari ishlab chiqish imkoni bo'lmagan narsalarni amalga oshirishingiz mumkin, shuningdek ularni Filtrlar, funksiyalar yoki ilgaklar bilan almashtiradigan ko'plab plaginlarni yaratishingiz mumkin.

Kod bilan ishlaydigan barcha veb-ustalar HTML yoki PHP qo'shish, uni noto'g'ri joyga kiritish orqali o'z saytlariga zarar etkazishdan qo'rqishadi. Albatta, agar siz WordPress kodini u erga qo'ymasangiz, hamma narsani ziplashingiz mumkin. Biroq, ushbu CMS ish stoli yangi boshlanuvchilar uchun juda mos keladi, buni tushunish qiyin bo'ladi.

Ushbu maqolada biz WordPress-ga HTML yoki PHP kodini qanday qilib xavfsiz kiritishni ko'rib chiqamiz. Cob uchun ale - bu foydali bo'lishi mumkin bo'lgan narsadir.

Endi siz kodni WordPress-ga kiritishingiz kerak

Saytning ishlash muddati davomida veb-master WordPress-ga sahifalarda ko'rsatilishi mumkin bo'lgan kodni o'rnatishi kerak bo'lishi mumkin. Bu turli sabablarga ko'ra kerak bo'lishi mumkin: masalan, qon bosimini pasaytiruvchi vositani o'rnatish, favqulodda vaziyat vidjeti yoki shaxsiy shablonni qo'shish.

WordPress kodni kiritishning ikkita usulini taklif qiladi. Keling, bir ko'rib chiqaylik.

"Matn" qo'shimcha vidjetini o'rnatish

WordPress-da qo'shimcha vidjet kodini o'rnatish uchun siz "Tashqi ko'rinish" konsolidagi menyu bandiga va "Vidjetlar" kichik bandiga o'tishingiz kerak. O'rtada "Matn" ni toping va uni sichqoncha bilan kerakli maydonga o'tkazing.

Vidjet ochiladi va siz uning sarlavhasini to'ldirishingiz va kerakli kodni tegishli maydonga joylashtirishingiz mumkin bo'ladi. "Saqlash" tugmasini bosgandan so'ng, operatsiya sayt sahifalarida paydo bo'ladi.

WordPress-ga kodni o'rnatishning ushbu usuli HTML, PHP va JavaScript-da operatsiyalarni bajarish uchun javob beradi. Bu usul tez-tez sinab ko'riladi, chunki u oson va yangi boshlanuvchilar uchun yaxshi.

Faylni o'rnatish

Qo'shimcha fayllarni tahrirlash uchun WordPress-ga kodni o'rnatish yangi boshlanuvchilar uchun tavsiya etilmaydi, ammo hamma uni ertaroq o'zlashtirishi kerak. Bu usul oddiy, chunki HTML yoki PHP birinchi usulda tasvirlanganidek, faqat vidjet maydoniga emas, istalgan qismga joylashtirilishi mumkin. O'rnatish usullari kam, lekin ular xavfsiz bo'lmasligi mumkin va agar shikastlangan bo'lsa, sayt samarasiz bo'lishi mumkin. Shuning uchun, ushbu usulni tezda ishlatishdan oldin, fayllar va ma'lumotlar bazasining zaxira nusxasini yaratish kerak.

WordPress-dagi faylga to'g'ridan-to'g'ri kod kiritish uchun siz saytning qaysi sohasi boshqa faylga mos kelishini bilishingiz kerak. Bu erda aniq tavsiyalar berishning iloji yo'q, chunki turli shablonlar va turli xil fayllar ushbu va boshqa funktsiyalarni birlashtiradi. Biroq, siz fayllar haqida ko'proq bilib olishingiz mumkin. Kod WordPress-da shablon faylida o'rnatilgan va CMS faylidan yaratilishi mumkin.

WordPress kodi bir xil uslubda yozilishi va yadro, plaginlar va mavzularda qo'lda o'qilishi uchun WordPress sotuvchilari tomonidan qabul qilingan kodlash standartlariga rioya qilish tavsiya etiladi. Ushbu standartlar PEAR standartiga juda o'xshash, ammo tub farqlar mavjud. Men ular bilan va yaratilgan plaginlar bilan tanishib chiqishingizni tavsiya qilaman, keyin esa iloji bo'lsa sinab ko'ring.

Shuningdek, PHP kodining o'zini yozish standartlari, shuningdek kodni hujjatlashtirish standartlari mavjud - funksiyalar va ilgaklar uchun sharhlar: PHP Documentation Standards (inglizcha)

Bir va ikki oyoqli

Agar qatorda o'zgarishlar bo'lmasa, bitta oyoqli, boshqa hollarda ikki oyoqli oyoqlardan foydalaning. Qatordagi panjalarni ekranlashning hojati yo'q va agar hid bo'lsa, ularni tozalash tavsiya etiladi:

Echo "Havola nomi"; echo "$linkname";

Bu holatda boshqa qator olib tashlash kerak bo'lgan o'zgarishlarni tozalamaydi, lekin xavfsizlik choralari bilan ishlash kerak. Shuning uchun, bunday rekord uchun muhim ayb keyinchalik tozalanadi. Zagalom tomonidan bunday eslatmani yoqimsiz deb hisoblash mumkin! yordamchini himoyachidan ajratish.

Kirish

Kirish har doim kodga mantiqiy tuzilmani ko'rsatish uchun javobgardir. Yorliqlarni tozalash o'rniga (Tab tugmasi) foydalaning - bu ko'proq moslashuvchanlikni beradi. Agar kerak bo'lsa, uni qatorning o'rtasida tekislash uchun uni aylantirishga harakat qilishdi.

Qoida: Jadval kirish uchun qatorning boshiga joylashtirilishi kerak, bo'shliqlar esa tekshirish uchun qatorning o'rtasiga joylashtirilishi mumkin.

Agar (umova) ( $foo = "ba'zi qiymat"; $foo2 = "ba'zi qiymat2"; $foo_bar = "ba'zi qiymat3"; $foo5 = "ba'zi qiymat4"; )

Ko'rinmas yorliq va bo'sh joy belgilarini ko'rsatishda kod shunday ko'rinadi:

Agar (umova) ( ---$foo.....= "ba'zi qiymat"; ---$foo2....= "ba'zi qiymat2"; ---$foo_bar.= "ba'zi qiymat3"; ---$foo5 ....= "ba'zi qiymat4"; )

Assotsiativ massivlar uchun aybdorlik qiymatlari yangi qatordan boshlanadi. Massivdagi elementlar qayta joylashtirilganda "qolgan" com qo'yish tavsiya etiladi - bu yangi elementlarni qo'shishni osonlashtiradi...

$my_massiv = massiv(---"foo"..=> "ba'zi qiymat", ---"foo2"..=> "somevalue2", ---"foo3"..=> "somevalue3", -- - "foo34". => "ba'zi qiymat3");

Jingalak ma'bad uslubi

Shakllangan qo'llar quyida ko'rsatilganidek, uslubdagi barcha bloklar uchun ishlatiladi:

Agar (umova) ( action1(); action2(); ) elseif (umova2 && umova3) ( action3(); action4(); ) else ( defaultaction(); )

Agar uzun blok mavjud bo'lsa, uni ikki yoki undan ortiq qisqa bloklarga yoki funktsiyalarga bo'lish mumkin. Agar shunday uzun blok zarur bo'lsa, jingalak kamonning o'zi nima yopilishini tushunishingiz uchun qisqa sharh qo'shing. Ushbu yondashuv 35 yoki undan ortiq qatorli bloklar uchun mantiqan to'g'ri keladi.

Siz intuitiv bo'lmagan har qanday kodni sharhlashingiz kerak.

Vikorist jingalak qo'llarni birinchi bo'lib, hidlamaslik uchun.

If (umova) ( action0(); ) if (umova) ( action1(); ) elseif (umova2) ( action2a(); action2b(); ) foreach ($items as $element) ( process_item($item); )

E'tibor bering, shakllangan qo'llarni vikorizatsiya qilish qobiliyati har doim har bir dizayn bir qator himoya uslubida ekanligini anglatadi.

$var = "xavfli""; // qayta ishlanmagan ma'lumotlar, qochib qutulishi mumkin yoki bo'lmasligi mumkin $id = some_foo_number(); // ma'lumotlar raqam sifatida chiqariladi, lekin qochib qutula olmaydi $wpdb->query($wpdb-> tayyorlash ("YANGILASH $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id));

%s satrlar uchun, %d esa butun sonlar uchun ishlatiladi. Xushbo'y hid "panjangizda" emasligi uchun sizga katta rahmat! $wpdb->prepare() o'zi satrlarni ekranga chiqaradi va kerak bo'lganda prokladkalarni qo'shadi. Tayyor() ning afzalligi shundaki, esc_sql() ni qo'lda o'zgartirish haqida eslashning hojati yo'q, shuningdek, qator birinchi navbatda to'ldiruvchilar bilan to'ldiriladi, chunki esc_sql() da o'zgartirilgan o'ramlar mavjud bo'ladi.

Asosiy ma'lumotlarni so'rang

Ma'lumotlar bazasiga to'g'ridan-to'g'ri so'rovlarni yozishdan ehtiyot bo'ling. Agar bu mos funksiya bo'lsa va WPda ularning ko'pi bo'lsa, kerakli ma'lumotlarni o'chirib tashlashingiz mumkin - tekshiring.

Foydali so'rovlarni almashtirish funktsiyasi potentsial kod murakkabligini tejashga yordam beradi. Bundan tashqari, kesh bilan ishlaydigan juda ko'p funktsiyalar mavjud va bu sizning kodingizni sezilarli darajada tezlashtirishi mumkin.

Sinflar, funksiyalar, fayllar, konstantalar, o'zgaruvchilar nomlari

Funksiyalar, o'zgarishlar, ilgaklar nomlari

Vikorist kichik harflar a-z o'zgarishlar, ilgaklar va funksiya nomlari va bir nechta CamelCase. So'zlaringizni pastki kreslolar bilan baham ko'ring _. Mashhur odamlarning ismlarini keraksiz bekorga sarflamang; Kod aniq va o'z-o'zidan hujjatlashtirilgan bo'lsin.

Funktsiya some_name($some_variable) ([...])

Sinf nomlari

Bosh harflardan so'zlarni to'g'rilash va ularni nomlardan ajratish kerak. Har qanday qisqartmalar (akronlar, qisqartmalar) KAPITAL bo'lishi kerak.

Walker_Category klassi Walker ([...]) WP_HTTP ([...]) sinfini kengaytiradi.

Konstantalar YUQORI REGISTERda quyilardan ajratilgan so'zlar bilan yoziladi:

Aniqlash("DOING_AJAX", rost);

Fayllarga nom bering

Aybdorlar tushundilar va aybdorlar ham kam yoki umuman harflar bilan joy oladi va aybdor so'zlar tire bilan ajratiladi - .

My-plugin-name.php

Sinf fayllarini nomlang

Ayblar class- prefiksi bilan sinf nomiga asoslanadi, sinf nomi defis bilan almashtiriladi, masalan WP_Error:

Class-wp-error.php

Ushbu fayl nomlash standarti sinflarga ega barcha mavjud va yangi fayllar uchun amal qiladi. Biroq, inklyuziya fayllari mavjud: class.wp-dependencies.php, class.wp-scripts.php, class.wp-styles.php. Bu fayllar sinf prefiksiga ega. , sinf so‘zidan keyingi davr defis o‘rnini egallaydi.

Funktsiya parametrlaridagi o'zgarishlarning keng qiymatlari

Mantiqiy qiymatlar satr qiymatlaridan muhimroqdir. Tobto. Funksiyani chaqirishda rost/noto'g'ri o'rniga qo'yish vikorystuvatdan ko'ra yaxshiroqdir, men qator parametrining ma'nosini tushuntiraman.

Yomon kod:

Function eat($what, $sekin = rost) (...) eat("qo'ziqorin"); ovqat ("qo'ziqorin", rost); // rost nimani anglatadi? yeyish("sinov", yolg'on); // false nimani anglatadi, bu rostmi?

PHP nomli argumentlarni qo'llab-quvvatlamasligi sababli, ixtiyoriy argumentlarning ma'nosi va shuning uchun biz ko'pincha ilovalarda bo'lgani kabi, funktsiya chaqiruvi bilan ishlayotganimizda, biz funktsiya hujjatlarini ko'rib chiqishimiz kerak. Kodni mantiqiy qiymatlar o'rniga tavsiflovchi satr qiymatlari yordamida ko'proq o'qish mumkin.

Garny kodi:

Function eat($what, $speed = "sekin") (...) eat("qo'ziqorin"); ovqat ("qo'ziqorin", "sekin"); ovqat ("sinov", "tezkor");

Agar sizga qoʻshimcha parametrlar kerak boʻlsa, $args massivini tahrirlang. Bu eng yaxshisi!

Haqiqatan ham yaxshi kod:

Funktsiya eat($what, $args) ( ... ) eat("noodles", array("speed" => "moderate"));

Dinamik ilgak nomlari uchun interpolatsiya

O'qish va identifikatsiya qilish qulayligi uchun nomi o'zgartirilgan ilgaklar interpolyatsiya qilinadi (kamon ( ) shaklida joylashtiriladi) va birlashtirilishi shart emas:

PHP interpolyatsiya qilingan qatordagi ma'lumotlar turlarini to'g'ri tahlil qilishi uchun tutqichlar talab qilinadi.

// to'g'ri bajarilgan_harakat("($new_status)_($post->post_type)", $post->ID, $post); // noto'g'ri bajarilgan_harakat($new_status "_". $post->post_type, $post->ID, $post);

Mumkin bo'lgan hollarda teg nomlaridagi dinamik ma'nolar imkon qadar qisqa va aniq saqlanishi mumkin. $user_id, aytaylik, $this->id ga qaraganda ancha mazmunli.

Uchlik operator

Uchlik operatorlari yaxshi, lekin ular yolg'on emas, balki har doim bayonotning haqiqatini tekshirishni tavsiya qiladi. Aks holda, qo'shimcha to'siqlar orqali chalg'itish oson. Vinyatok - tse vikoristannya! empty() , uni yozish ba'zan qiyin.

Qanday tekshirish mumkin:

// (bu haqda qanday fikrdasiz = rost)? (keyin robimo tse): (inakshe tse); $music_type = ("jazz" == $music) ? "salqin": "blah"; / / (Nega qiymatlar bo'sh emas - ! bo'sh)? (keyin robimo tse): (inakshe tse);

Qanday qilib yozmaslik kerak:

// (Nega bu haqda o'ylamaysiz! = rost)? (keyin robimo tse): (inakshe tse); $music_type = ("jazz" != $music) ? "blah": "salqin";

Aql ustasi Yodi

Mantiqiy tenglamalarni tanlayotganda, birinchi navbatda doimiylarni qo'ying va literal yomon, literal esa o'ng qo'ldir.

Agar (haqiqiy == $the_force) ( $g'olib = siz_bo'lasiz($bo'ladi); )

Agar biz ko'rsatgan ilovada = boshqa belgisini o'tkazib yuborsak (to'g'risi, biz topilgan narsalardan sizga aytmoqchi emasmiz), u holda biz PHP modifikatsiyasini rad etamiz va bu osonroq bo'ladi, chunki kod qayta ishlanmaydi. Va agar dizayn shlyuz bo'lsa - $the_force = true , unda bizning ongimiz doimo chalkash bo'ladi va bizga hech qanday rahm-shafqat kerak bo'lmaydi va biz hali ham qo'lga olish muhim bo'lgan bunday jiddiy xatoni o'tkazib yuborishimiz mumkin!

Bunday "teskari" yozuvni faqat chaqirish kerak.

Bunga arziydi í == , != , === í!== . "Umovi Jodi" uchun< , > , <= или >O'qish juda muhim va bu erda ularni vikorizatsiya qilmaslik yaxshiroqdir.

Aqlli kod

Qisqacha aytganda, kodni o'qish birinchi tekislikda bo'lishi mumkin, bu uslub yoki aniq bo'lmagan har qanday narsa uchun muhim, lekin juda tez.

Isset($var) || $var = some_function(); // yoki yana! isset($var) && $var = some_function();

Demak - bu ajoyib rekord, dasturchi ushbu tadqiqotni yakunlagani aniq. Boshqa har qanday o'quvchi va ko'pincha muallif uchun bunday yozuvga kirish uchun siz biroz chuqurlashib, bir necha soniya yoki daqiqa sarflashingiz kerak. Bu ochiq-oydin yoki mantiqiy yozuv emas va u noyob bo'lishi kerak va qisqacha, uni yozib olish kerak, lekin aniqroq:

Agar (! isset($var)) ( $var = some_function(); )

Bo'g'ilgan operator kechirim so'radi @

PHP bitta yadro operatorini qo'llab-quvvatlaydi: @ belgisi. Agar siz biron bir virusni PHP kodiga uzatsangiz, ushbu virus tomonidan yaratilgan xatolar haqidagi bildirishnomalar e'tiborga olinmaydi.

Ushbu operator yadroda joylashganida, odatda o'zgarishlarni qayta ishlash uchun juda dangasa ekanligi ko'pincha ta'kidlanadi. Yogo vikoristannya qiyin tavsiya etilmaydi, PHP hujjatlarida aytilganidek:

Iltimos, diqqat qiling: "@" operatori bugungi kundan boshlab skript ishlashini to'xtatadigan muhim xatolar haqida bildirishnomalarni ko'rsatishni bostiradi. Bundan tashqari, bu shuni anglatadiki, agar siz ruxsatlarni bo'g'ish uchun "@" dan foydalansangiz, bu har qanday funktsiya ishlayotganida sodir bo'ladi, chunki u mavjud emas yoki noto'g'ri yozilgan bo'lsa, skriptning qolgan qismi hech qanday bildirishnomasiz bekor qilinadi.

WordPress eng mashhur CMSlardan biridir. Yaratilganidan beri WordPress blog yurituvchi vosita sifatida yaratilgan va ushbu saytlarni boshqarish tizimining mashhurligi tufayli bir qator qo'shimcha plaginlar ishlab chiqilgan bo'lib, ular turli xil saytlarni yaratish imkonini beradi. Albatta, WP-dagi boshqa dvigatellarda bo'lgani kabi, veb-master bilishi kerak bo'lgan juda ko'p turli xil tuzoqlar mavjud.

WordPress dvigatelining asosiy funktsiyalari

WordPress hujjatlarida yuzlab PHP funksiyalari mavjud va ularning aksariyati aniq vazifalarga javoban kamdan-kam hollarda koʻrib chiqiladi. Mavzular va vidjetlarni ishlab chiqishda eng keng tarqalgan WordPress funksiyalarining oz sonini tanladim.

WordPress H1 sarlavhasi

WordPress-da birinchi darajadagi H1 sarlavhasini qanday ko'paytirishni ko'rib chiqamiz. Va qoida shundaki, birinchi darajali H1 sarlavhasi faqat sahifadagi bittasi uchun javobgardir va WordPress dizayn mavzularining aksariyati H1 ...

WordPress vidjetlarini yaratish

Ushbu maqola kuchli WordPress vidjetlarini yaratish haqida. Keling, ko'rib chiqaylik: to'g'ridan-to'g'ri dizayn mavzusida WordPress vidjetini yaratish, vidjet ko'rsatiladigan maxsus plagin yaratish, shu jumladan standart WordPress vidjetlari...

WordPress boshini keraksiz koddan qanday tozalash mumkin?

WordPress promo foydalanuvchilari uchun kodni boshda ko'rsating, bu shart emas. Keling, ushbu kichik maqolani ko'rib chiqaylik, shunda siz saytda yaxshi taassurot qoldirishingiz mumkin. Avval barcha keraksiz xabarlarni ko'ramiz: RSS tasmasi, WordPress versiyasi...

WordPress-da skriptlar va uslublarning ziddiyatsiz ulanishi

Mojarosiz usul bir necha sabablarga ko'ra zarur: u bitta skriptni turli plaginlar bilan ulashda ziddiyatdan qochadi. Ushbu ulanish yordamida usul sizga JS fayllar to'plamini birlashtirib, optimallashtirish uchun brauzerga toza formatda taqdim etish imkonini beradi.

Viruslar