AJAX yordamida oddiy sharhlash tizimi. CRM tizimini qanday qilib to'g'ri amalga oshirish kerak: harakatlar algoritmi va keng tarqalgan xatolar Ijtimoiy media vidjetlari

Salom do'stlar va blog mehmonlari! Bugun men sizga PHP va MySQL-dan foydalanishni aytib beraman. Va biz bu haqda gaplashamiz sayt uchun sharh tizimlari va men taklif qilganlardan saytingiz uchun eng yaxshisini tanlang.

Birinchi savol: yordamida PHP va MySQL?

Buning uchun siz va men, avvalo, saytingizning ma'lumotlar bazasida jadval yaratishimiz kerak, bu jadval - deb ataladi. Izohlar... Ushbu yaratilgan jadval sharhlarni quyidagi belgilar bilan maydonlarda saqlaydi:

id Noyob identifikator.
page_id- bu maydon ushbu sharh joylashgan sayt sahifasining identifikatorini saqlaydi.
nomi Izoh qoldirgan sharhlovchining ismi.
text_comment- mos ravishda, bu hozirgi sharhning matni.

Keyingi qadam, ma'lumotlar bazasida sharhlar uchun jadval yaratgandan so'ng, biz saytdagi kelajakdagi sharhlarimiz uchun maxsus kodni kiritishimiz kerak. Saytdagi ushbu kod sharhlovchilarimizga maqolalarimizga o'z sharhlarini qo'shish imkonini beradi. Mana kod:


Bu veb-sayt uchun oddiy HTML sharh shaklidir. Siz uni o'z saytingizga postga sharh qoldirish uchun qulay bo'lgan joyga joylashtirasiz - albatta, postning o'zi ostida.

so‘rov ("INSERT INTO` sharxlar` (`nom`,` page_id`, `matn_izoh`) VALUES (" $name "," $ page_id "," $ text_comment ")"); // Jadval sarlavhasiga sharh qo'shing (" Joylashuv: ". $ _ SERVER [" HTTP_REFERER "]); // Qayta yo'naltiramizmi?>

PHP va MySQL-da sayt uchun sharh formasini yaratishning oxirgi bosqichi sayt sahifasida sharhlarimizni ko'rsatishdir. Buning uchun kod:

so'rov ("SELECT * FROM` sharhlar` WHERE `page_id` =" $ page_id ""); // Ushbu sahifa uchun barcha sharhlarni olish ($ row = $ result_set-> fetch_assoc ()) (print_r ($ row); // Chiqish sharhlari aks-sadosi "
"; } ?>

Ana xolos! Bizning oddiy sayt sharh formamiz yaratilgan va uni saytda ishga tushirish mumkin.

Ammo bu HTML, PHP va MySQL kodlari bilan qazishni istamaydigan yangi boshlanuvchilar uchun emas. Shuningdek, u ma'lumotlar bazasini qanday yaratishni o'rganmaydi. Unga hamma narsa bir vaqtning o'zida, tez va bosh og'rig'isiz kerak. men to'g'rimi? Albatta to'g'ri!

Keyin mening materialimning keyingi bo'limiga o'tamiz va sayt uchun tayyor sharhlash tizimlari haqida hamma narsani bilib olaylik va saytingiz uchun eng qulay, funktsional va maqbulini tanlaymiz ...

Sayt uchun sharhlar tizimlari. Qaysi birini tanlash kerak?

Saytda qanday fikr bildirish kerak- bu muhim savol, chunki saytdagi sharhlar nafaqat sayt egasi va tashrif buyuruvchi o'rtasidagi aloqa uchun muhim rol o'ynaydi, balki sharhlar ham muhim ahamiyatga ega. SEO targ'iboti va rag'batlantirish.

Saytdagi sharhlar yordamida qidiruv natijalarida saytning o'rni oshadi, xulq-atvor omillari yaxshilanadi, saytga tashrif buyuruvchilar soni ortadi va natijada sizning daromadingiz ortadi. Ko'ryapsizmi, sharhlar sayt uchun qanchalik muhim!

Shunday qilib, ko'rib chiqaylik saytga qanday fikr bildirish kerak va nima sharhlash tizimi eng ko'p tanlang eng yaxshi variant?

Umuman olganda, saytlardagi sharhlar ko'p jihatdan ko'rsatiladi. Bular WordPress dvigatellari uchun maxsus plaginlar va sharhlar ijtimoiy tarmoqlar barcha turdagi, masalan Bilan aloqada, Facebook, Disqus... Masalan, sayt uchun o'zlarining sharhlash tizimlarini taklif qiladigan mustaqil xizmatlar ham mavjud.

Endi men sizga bitta plastinka beraman, u darhol hamma narsani o'z o'rniga qo'yadi va sayt uchun sharh tizimini tanlash bo'yicha savollar endi paydo bo'lmaydi:

Bu erda hamma narsa aniq va aniq ko'rinib turibdiki, qaysi sharhlar tizimi eng yaxshi va bir nechta taqdim etilgan bo'lib, ular veb-ustalar tomonidan o'z resurslarida ko'pincha qo'llaniladi. Menimcha, bu erda tushuntirishlar ortiqcha va tanlov faqat sizniki!

O'qish vaqti: 55 min

Hammaga xayrli kun.

Mikro-belgilash bo'yicha uzoq kutilgan materialning vaqti keldi.

Darhol aytishim kerakki, ushbu maqola birinchi tushunish uchun, ayniqsa yangi boshlanuvchilar uchun juda qiyin bo'ladi, chunki mikro-belgilashning ko'plab variantlari mavjud va darhol hamma narsani boshingizga qo'yish qiyin. Lekin men katta rasmni tasvirlashga harakat qilaman va shu bilan birga eng muhim va umumiy narsalarga e'tibor qarataman.

Material juda katta hajmga ega, ammo umid qilamanki, bu sizga saytda mikro-markup yaratishda yordam beradi.

Yaqinda men ko'p odamlar mikroma'lumotlarga e'tibor qaratishganini payqadim. Bu turli SEO bloggerlari buni qizg'in muhokama qila boshlaganidan keyin sodir bo'ldi. Ammo keling, nima uchun u umuman qo'llanilishini va unga juda ko'p e'tibor berish kerakmi yoki yo'qligini aniqlaylik. O'yin shamga arziydimi?

Mikro-belgilash nima va u nima uchun kerak

Agar siz sahifaning (saytning) mikro-belgilash yoki semantik belgilarini eshitsangiz, shuni yodda tutingki, bu qidiruv tizimlariga alohida sahifa elementlari haqida tushunchalar beradigan, ularning mazmunini ko'rsatadigan qo'shimcha atributlar (teglar) yordamida sahifani belgilashni anglatadi.

Oddiy sahifa allaqachon belgilanganligini tushunishingiz kerak, lekin ayni paytda odatiy umumiy qabul qilingan teglar va atributlar qo'llaniladi. Bu qidiruv tizimlari uchun etarli va ko'plab saytlar hali ham mavjud va muvaffaqiyatli rivojlanmoqda.

Ammo, agar biz qidiruv tizimlariga bizning saytimizni tushunishga, ularni sahifaning muhim joylariga yo'naltirishga, uning tuzilishini tushunishga, birinchi navbatda e'tibor berishingiz kerak bo'lgan sohalarning mazmunini ko'rsatishga yordam berishni istasak, unda siz micro-ni joriy qilishingiz kerak. -belgilash, ya'ni hamma narsani ko'rsatadigan ma'lum teglar va atributlarni qo'shing.

Shunday qilib, biz nafaqat qidiruv tizimlariga, balki bizning saytimizga ham yordam beramiz, chunki mikro-belgilash nafaqat sayt tuzilishi va tarkibini tushunish, balki qidiruv natijalarini yaratish, funktsional va jozibali parchalarni shakllantirish uchun ham qo'llaniladi. ekstraditsiya qilingan saytning sekin urish tezligi (CTR). Va bu umumiy sayt trafigining o'sishi.

Quyida bunday parchalarning yorqin misolini ko'rishingiz mumkin.

Ustida bu rasm SERP-dagi boshqa saytlarning kulrang massalari orasida qaysi biri to'ldirilishini va ko'proq ko'rinishini ko'rishingiz mumkin. Men shuningdek, oddiy noaniq URL emas, balki saytdagi materialga aniq tuzilgan yo'lni ko'rsatadigan strelkalar bilan non bo'laklarini ta'kidladim.

Bu non sindirish juda oddiy. Ularni saytga o'rnatish kifoya.

Kengaytirilgan parchalar uchun yana bir variant.

Xuddi shu variant tashrif buyuruvchiga sayt nima haqida ekanligini va unga nima berishi mumkinligini darhol tushunishga imkon beradi. Agar bu holatda parcha to'g'ri tuzilgan bo'lsa, u holda foydalanuvchi darhol sizga kerak bo'lgan amalni bajarishi mumkin va biz bilganimizdek, har bir sayt o'z vazifalarini bajarishi kerak (obuna, sotib olish va hokazo).

Qabul qilingki, bunday parcha qidiruv natijalarida oddiy sahifa tavsifiga qaraganda ko'proq sezilarli bo'ladi, chunki u ancha kattaroq hajmga ega. Va u yanada mustahkam ko'rinadi.

Keling, mikro-markup pozitsiyalarni oshirishga yordam beradi va reyting omillaridan biri deb o'ylaydiganlarni qiziqtiradigan savolga javob beraylik.

Mikroma'lumotlar reytingga ta'sir qiladimi? Uni amalga oshirgandan so'ng biz lavozimlarning ko'payishini kutishimiz kerakmi?

O'z fikrimizni yozmaslik uchun keling, Yandex qidiruv tizimining yordamiga murojaat qilaylik. Xo'sh, Yandex o'zi bu hisob haqida bizga nima deydi. Iqtibos keltiraman:

Belgilashdan foydalansam, saytim reytingi yaxshilanadimi?

Javob: Belgilash sizning saytingizni Yandex qidiruvida ko'proq ko'rinadigan qilish va shu tariqa unga tegishli bo'lgan ko'proq tashrif buyuruvchilarni jalb qilishi mumkin maqsadli auditoriya... Yandex foydalanuvchilarni Qidiruv yordamida o'z muammolarini hal qilishdan manfaatdor. Qidiruv sifati ko'rsatkichlaridan biri "foydalanuvchi baxti" deb ataladi. “Baxt”ni oshiruvchi veb-saytlar yuqori o‘rinlarda turadi.

Xulosa qilishimiz mumkinki, belgilash pozitsiyalarga to'g'ridan-to'g'ri ta'sir qilmaydi, faqat bilvosita, chunki biz yanada jozibali snippet yaratishimiz mumkin, bu o'z-o'zidan resursga ko'proq tashrif buyuruvchilarni jalb qiladi. Bundan tashqari, bu allaqachon texnologiya masalasi. Ko'proq tashrif buyuruvchilar - sahifalar haqida ko'proq to'plangan yaxshi ko'rsatkichlar (agar kontent yuqori sifatli bo'lsa) va pozitsiyalar asta-sekin o'sib boradi.

Shuni ham ta'kidlash joizki, qidiruv tizimlariga kontentning mohiyatini, uning turini (ma'lumot, uchrashuv, mahsulot va boshqalar) tushunishga yordam berish orqali biz kontentni yanada dolzarbroq qilamiz. qidiruv so'rovi va u yuqori lavozimda bo'lishi kerak. Ehtimol, to'g'ridan-to'g'ri emas, balki bilvosita - bu to'g'ri. Yandex buni bizga tasdiqladi (yuqoriga qarang).

Shunday qilib, keling, veb-saytda mikro-belgilashning afzalliklari haqida tezkor nazorat ro'yxatini tuzamiz. Bu bilvosita yoki to'g'ridan-to'g'ri sayt sifatini ko'rsatadigan, uning o'rnini oshiradigan va qidiruv tizimlariga yordam beradigan daqiqalardir.

  1. Birinchidan, qidiruv tizimlari tomonidan saytga bo'lgan ishonch oshadi degan xulosaga kelishimiz mumkin, chunki biz qidiruv robotini saytning asosiy elementlariga yo'naltiramiz, bizda nimadir noto'g'ri ekanligidan qo'rqmasdan va qidiruvdan nimanidir yashirishga harakat qilmasdan. robot.... Natijada, qidiruv tizimlari biz ularga yordam beryapmiz deb o'ylashlari va ularga "sayt ruhini" ochishlari mantiqan to'g'ri keladi, bu albatta saytni indekslash sifatiga va pirovardida pozitsiyalarga ta'sir qiladi;
  2. Ikkinchidan, to'g'ri sozlamalar bilan biz qidiruv natijalarida parchani ajratib ko'rsatishimiz mumkin, bu esa pozitsiyalarni o'zgartirmasdan resurs sahifalariga trafikning bir zumda oshishiga olib keladi. Oxir oqibat, ko'proq trafik ko'proq narsaga olib keladi alohida sahifalar qidiruv natijalarida va umuman saytda;
  3. Uchinchidan, biz xulq-atvor omilini oshiramiz - qidiruv natijalarida CTR (klik tezligi). Bu nuqta avvalgisi bilan juda chambarchas bog'liq. Bizning saytimizda bosishlar ko'proq bo'lgani uchun biz tashrif buyuruvchiga bizning sahifamiz boshqa saytlarga qaraganda sifatliroq ekanligini tushunishga aniqroq yordam berdik. Bu shuni anglatadiki, sayt SERPni biroz ko'tarishi kerak.

Shunday qilib, menimcha, berilgan savolga javob berilgan.

Sizga umuman mikro-belgilash kerakmi? - Ha biz qilamiz.

Albatta, agar saytdagi belgilarni og'riqli amalga oshirish va boshqa nuqtalar ustida ishlash o'rtasida tanlov mavjud bo'lsa, unda, albatta, siz faqat semantik belgilar haqida o'ylamasligingiz kerak. Yuzlab yoki minglab boshqa narsalarning texnik tafsilotidan ko'ra muhimroq bo'lgan tarkib ustida ishlash yaxshiroqdir. Bundan tashqari, endi siz SERP-da o'zingizning parchangizni shablonga belgi qo'ymasdan ajratib ko'rsatishingiz mumkin, lekin faqat reyting belgisi allaqachon taqdim etilgan uni o'rnatish orqali.

Asosiy afzalliklarni bilganimizdan so'ng, biz semantik belgilarning asosiy turlarini ko'rib chiqishga o'tishimiz mumkin.

Mikrobelgilashning asosiy turlari

Bu erda hamma narsa juda murakkab. Birinchidan, belgilash lug'atlari va ularning sintaksislari mavjudligini tushunishingiz kerak.

Lug'at deganda sahifa mazmunining mohiyatini ko'rsatadigan sinflar, xususiyatlar to'plamini o'z ichiga olgan mikro-belgilash tili sifatida tushunish mumkin. Har bir lug'atda saytdagi har bir element turli teglar yordamida ko'rsatilgan. Masalan, Schema.org lug'atida hujjat nomi "nom" yorlig'i yordamida ko'rsatilgan, ammo mikroformatlar belgilanishi kerak bo'lgan element blokida CSS sinfidan foydalanadi ( romashka, bu erda fn org - bu holda sarlavha yorlig'i).

Har bir lug'at va sintaksis o'z teglari va atributlariga ega bo'lib, mikroma'lumotlar formatlaridan vinaigrette deb ataladi. Buni aniqlash juda qiyin.

Sintaksis deganda biz semantik belgilarning u yoki bu tilini (lug'atini) qo'llash usulini tushunamiz. Sintaksis sahifadagi ob'ektlar ob'ekti va ularning xususiyatlari qaysi teglar bilan ko'rsatilishini aniqlaydi.

Sintaksisning oldingi ta'rifidan ob'ekt tushunchasi yangradi. Bu ko'rib chiqilayotgan masalaga tegishli nimani anglatadi?

Mohiyat - agar oddiy bo'lsa, bu biz qidiruv tizimlariga ishora qiladigan ma'lumotlar turi (tarkib birligi, ma'lumot). Misol uchun, biz blogning asosiy sahifasida e'lonlarni ko'rsatishimiz kerak, ya'ni ushbu hududning ob'ektini qandaydir teg bilan ajratib ko'rsatish, uni e'lonlar maydoni sifatida belgilashimiz kerak. Post sahifasi bilan ham xuddi shunday qilish kerak, bu erda kontent (maqola) joylashgan hududning mohiyatini ko'rsatish, ya'ni matnni kontent maydoni sifatida tanlash kerak.

Sahifaning deyarli har bir elementi uchun siz ob'ektni belgilashingiz mumkin, ya'ni uning nima ekanligini ko'rsatishingiz mumkin: tarkib yoki reyting yoki umuman, sharhlar. Shunday qilib, bunday sahifalarda ob'ektlarni ko'rsatish mumkin (masalan, men o'zim kabi oddiy blog shablonini olaman):

  • Bosh sahifa - e'lonlar ro'yxati;
  • Xabarlar sahifasi - sharhlar, kontent, reyting (agar mavjud bo'lsa), non parchalari;
  • Oddiy statik sahifa - tarkib, sharhlar (agar mavjud bo'lsa).

Bunga qo'shimcha ravishda, har bir sahifa turida siz bir xil elementni belgilashingiz mumkin - sayt sarlavhasi, altbilgi (kolontitr), yon panel (yon ustun), asosiy menyu.

Har bir ob'ektning o'ziga xos xususiyatlari bor, masalan:

  • Xabarlar sahifasidagi kontent maydoni - maqola nomi, maqola matni, tavsifi, maqola muallifining ismi, nashr etilgan sana, sarlavha, rasmlar, videolar va boshqalar;
  • Asosiy sahifa, sarlavhalar va arxivlardagi e'lonlar ro'yxatining maydoni bir xil;
  • Sharhlar maydoni - sharhlovchining ismi, sanasi, sharh matni;
  • Oddiy statik sahifadagi kontent maydoni asosan postlardagi kabi;
  • Sayt sarlavhasi maydoni - sarlavha, tavsif;
  • Sahifalardagi reyting maydoni - maksimal reyting, joriy reyting, reytinglar soni.
  • Footer maydoni (sayt altbilgisi) - mualliflik huquqi yili;
  • Yon panel (yon panel) maydoni - vidjetlar nomi;
  • Asosiy menyu maydoni havolalardir.

Xususiyatlari bo'lgan boshqa sohalar ham bor, lekin men ularni ko'rib chiqmayman, chunki har bir belgilash lug'atida ularning bir necha o'nlablari bor va schema.org markalashda ularning yuzlablari bor.

Ularning har birining ob'ektlari va xususiyatlarini ko'rsatish uchun qanday teglar va atributlardan foydalanish kerak, biz ushbu maqolaning amaliy qismida ko'rib chiqamiz.

Endi paragrafning asosiy g'oyasiga o'tamiz va semantik belgilashning asosiy formatlarini ko'rib chiqamiz. Asosiy lug'atlar va sintaksislarning qisqacha ro'yxatini quyidagi aql xaritasida ko'rish mumkin.

Biz barcha lug'atlar va sintaksislarni ko'rib chiqmaymiz, chunki bu ma'nosiz. Ular sizga kerak bo'lmaydi. Keling, asosiy belgilash formatlarini qisqacha muhokama qilaylik:

  • Schema.org;
  • Ochiq grafik;
  • Mikroformatlar.

Biz boshqalarning ba'zilariga biroz to'xtalamiz.


Oxirgi qadam, Google tomonidan ishlab chiqilgan va hozirda to'xtatib turilgan boshqa lug'atga, ya'ni Data Vocabularyga e'tibor berishdir. Barcha e'tibor Schema.org saytiga qaratildi. Aytishimiz mumkinki, ushbu belgilash tilida bo'lgan barcha xususiyatlar va ob'ektlar schema.org dan belgilash uchun prototiplarga aylandi.

Men tushunganimdek, Ma'lumotlar lug'ati sintaksislar bilan ishlashi mumkin: mikrodata va RDF, bu Google'ning "breakcrumbs" mikro-belgilash materiallari bo'yicha yordamida juda yaxshi ko'rish mumkin. U ikkita belgilash variantini taqdim etadi:

  1. Mikrodata ma'lumotlar lug'atini belgilash;
  2. RDFa bilan ma'lumotlar lug'atini belgilash.

Men biroz oldinga yuguraman. Birinchi rasmda siz Schema.org dan mikrodata ma'lumotlar lug'ati bilan birgalikda ishlatilishini ko'rishingiz mumkin. Gap shundaki, sxema bo'laklari hali qo'llab-quvvatlanmaydi. Shuning uchun, birlashtirilgan versiya ishlatiladi.

Qaysi belgilash formatidan foydalanish yaxshiroq

O'ylaymanki, siz bu savolning savolini allaqachon bilasiz, chunki har bir belgi turini tavsiflashda men inkor etib bo'lmaydigan dalil keltirdim. qidiruv tizimlari o'zlari Schema.org belgilash lug'atini tavsiya qiladilar. Bu siz foydalanishingiz kerak bo'lgan narsadir. Ammo plaginlardan ham, ob'ektlar va xususiyatlarni dizayn shablonlariga kiritishdan ham ushbu mikro-belgilashni amalga oshirishning ko'plab variantlari bo'lishi mumkin.

Oxirgi variant eng maqbuldir, chunki bu bir martalik ish va mikro-belgilash mutlaqo har bir sahifada bo'ladi. Barcha qidiruv tizimlari uni ko'radi, chunki u shablonga tikiladi. Ammo yangi boshlanuvchilar uni amalga oshirishda muammolarga duch kelishlari mumkin, chunki siz shabloningiz kodini hech bo'lmaganda minimal asosiy darajada tushunishingiz va maqolaning sarlavhasi qaysi tegda ko'rsatilishini, matnni ko'rsatish uchun kod qaerda ekanligini va hokazolarni ko'rishingiz kerak. Bu nuqtalarning barchasi mikro-belgilash teglari bilan o'ralgan bo'lishi kerak.

Shu o‘rinda turli lug‘atlarni bir saytga birlashtirish masalasi ham bor. Bu joizdir va ba'zi hollarda u holda amalga oshirilmaydi. Buni Schema.org dan ma'lumotlar lug'ati va mikrodata belgilarini birlashtirganda, nonni belgilash misolida aniq ko'rish mumkin. Buning hech qanday yomon joyi yo'q. Yandexning o'zi bu haqda gapiradi.

Bu o'zingizga bog'liq. Agar siz mikroformatlardan foydalanishni osonlashtirsangiz, unga o'ting. Shaxsan men butun jarayonni Schema.org mikro-belgisida ko'rsataman, chunki u o'zi amalga oshirilgan va hamma narsa bitta xatosiz portlash bilan ishlaydi.

Saytdagi belgini qanday tekshirish mumkin

Ushbu bosqichdagi bizning vazifamiz shablonimizda qandaydir belgilash formati mavjudligini aniqlashdir. Bu juda mumkin, chunki ishlatiladigan shablonlarning aksariyati ingliz tiliga tarjima qilingan mavzular bo'lib, ular allaqachon semantik belgilash formatini o'z ichiga oladi. Qoida tariqasida, bu bizga umuman kerak bo'lmagan mikroformatlardagi belgilash. Agar u dastlab mavjud bo'lmasa, yaxshiroqdir, chunki bu bizni olib tashlashda bosh og'rig'idan xalos qiladi.

Belgilash mavjudligini tekshirish uchun siz Yandex mikro-belgilash tekshiruvi va Google tuzilgan ma'lumotlarni tekshirish vositasidan foydalanishingiz mumkin. Men sizga Yandex validatoridan foydalanishni afzal ko'raman va tavsiya qilaman, chunki u ancha sodda.

Yandex validatoriga o'tganimizdan so'ng biz sahifa manzilini kiritamiz va "Tekshirish" tugmasini bosing.

Agar "Mikrobelgi topilmadi" deb yozilsa, shablonda uchinchi tomon belgilari yo'q. Bu juda yaxshi, chunki uni olib tashlash uchun kuch sarflashingiz shart emas. Ammo ehtiyot bo'ling, chunki bir turdagi sahifalarda belgilar bo'lmasligi mumkin, boshqasida esa mavjud bo'ladi (masalan, maqola sahifasida).

Bu erda, shunchaki, men post sahifasini tahlil qilaman va ma'lum bo'lishicha, shablon sharhlari mikroformatlar bilan belgilangan (vcard mavjud). Buni skanerlash natijalaridagi turli kodlar tasdiqlaydi.

Bizga mikroformatlar kerak emas, shuning uchun ularni olib tashlash kerak. Sizning shabloningiz boshqa belgilash formatlari bilan belgilangan bo'lishi mumkin. Keyin ular ham o'chirilishi kerak. Va Schema.org dan belgilash darhol amalga oshirilishi mumkin. Bu ham sodir bo'ladi, lekin juda kamdan-kam hollarda, chunki bepul doimiy shablonlar deyarli yo'q. Lekin yomoni bir tiyinga teng.

Endi uchinchi tomon belgilarini olib tashlash jarayonini ko'rib chiqaylik.

Uchinchi tomon belgilarini olib tashlash

Mening holimda bu mikroformatlardan foydalangan holda uchinchi tomon belgilari bo'lib chiqdi, men ushbu jarayonni ko'rsatish uchun uni misol sifatida ishlataman. Agar sizda boshqa belgilar bo'lsa, uni olib tashlash printsipi bir xil bo'ladi.

Hammasi teglar va ularning atributlarini sizda mavjud bo'lgan belgilardan olib tashlashga to'g'ri keladi. Mikroformatlarning boshqa mikrobelgilash turlaridan farqi shundaki, mikroformatlardan tashqari barcha turlar yangi teglar va atributlar qo'shadi. Mikroformatlar hech narsa qo'shmaydi, lekin ma'lum bir sinf atributiga yoziladi html elementi shablon (masalan, maqolaning sarlavhasi), men asosiy turlar haqida xatboshida yozganimdek.

Aytgancha, ushbu maqolaning 6-bandida men shablonning functions.php funksiya fayliga kiritilishi kerak bo'lgan izoh belgilash kodini beraman. Ushbu kod ushbu xatolarni uchinchi tomon mikroformat belgilaridan tuzatishi kerak. Shuning uchun, agar sizda bunday muammo bo'lsa, avval shabloningizdagi ushbu kodni tekshirishni maslahat beraman. U yordam berishi kerak. Bu sizga ko'p qo'lda utilizatsiya qilish ishlarini tejaydi. Hech narsa ishlamasa, biz quyida tasvirlaganimdek, hamma narsani qo'llarimiz bilan qilamiz.

Endi jarayonning o'ziga o'tamiz. Shunday qilib, avvalroq menda mikroformatlardan qo'shimcha belgilar borligi aniq bo'ldi. Validatorni tekshirishda bizga xatoliklarni keltirib chiqaradigan vcard tegi berildi.

Endi biz uning barcha fayllarini ko'rish uchun shablonli papkani ochishimiz kerak va keyin biz mikroformatlar joylashgan elementlarni ko'rsatish uchun mas'ul bo'lgan fayllarga murojaat qilamiz. Buni qanday qilish kerak, quyidagi ro'yxatga qarang:

Umid qilamanki, men buni juda oddiy tushuntirdim. Garchi yangi boshlanuvchining boshida chalkashlik bo'lishi mumkin.

Bu vkartali kod qismi shablon faylida dastlab meni shunday qidirdi.

O'zgarishlardan keyin shunday bo'ldi.

Men uslublarda ham o'zgarishlar qildim.

Endi mikroformatlar yo'q va dizayn asl holatida saqlanib qolgan.

Shunday qilib, biz standart belgini olib tashlaganimizda (agar u mavjud bo'lsa), biz Schema.org saytidan yangisini joylashtirishimiz mumkin. Biz bu jarayonni boshlaymiz.

Schema.org mikro-belgilash amalga oshirilmoqda

Keling, biroz tushuntirish va nazariya bilan boshlaylik, chunki siz har doim amaliyotdan oldin tayyorgarlik ko'rishingiz kerak.

Birinchidan, qaysi fayllarni kerakli ob'ektlar va ularning xususiyatlariga ko'rsatishimiz kerakligini aniqlashga arziydi. Endi men WordPress dvigateli uchun fayllar haqida gapiryapman. Boshqa dvigatellar haqida gapirmayman, chunki men ular bilan ishlamayman. Belgilash printsipi bir xil bo'lib qoladi. Siz shunchaki belgilash uchun kerakli joylar joylashgan fayllarni aniqlashingiz kerak.

  • Single.php fayli (yozuvlar fayli): ob'ekt - kontent maydoni (maqola), xususiyatlar - nashr etilgan sana, muallif, sarlavha, maqola nomi, rasmlar;
  • functions.php fayli (mening holimda, sharh kodini belgilash): ob'ekt - sharh, xususiyatlar - sharh matni, sana va sharhlovchining nomi;
  • index.php, category.php, archive.php (mos ravishda asosiy, toifalar va arxivlar) e'lonlar ro'yxatiga ega fayllar: ob'ekt - e'lonlar ro'yxati, xususiyatlar - nashr etilgan sana, muallif, toifa, maqola nomi;
  • page.php fayli (odatiy statik sahifa - ixtiyoriy): ob'ekt - kontent maydoni, xususiyatlar - matn nomi va agar mavjud bo'lsa, sana, muallif va boshqalar;
  • header.php faylida sarlavhani ham belgilang - ob'ekt sarlavha bo'ladi va xususiyatlar sayt sarlavhasi + tavsifi bo'ladi;
  • Fayl sidebar.php (yon panel): ob'ekt - butun yon panel, xususiyat - har bir vidjetning sarlavhasi;
  • footer.php fayli (sayt altbilgisi): ob'ekt - butun pastki kolontiter, mulk - mualliflik huquqi sanasi + sayt nomi (men nomni belgilamadim);
  • header.php fayli ( yuqori qismi resurs): ob'ekt - asosiy navigatsiya menyusi, mulk - havolalar + ularning langarlari.

Endi har bir ob'ekt turiga mos keladigan teglar va atributlar va ularning tegishli xususiyatlari haqida. Birinchidan, ob'ektlar haqida.

/ *** E'lonlar ro'yxati *** / itemscope itemtype = "http://schema.org/BlogPosting" / *** Post sahifasi mazmuni *** / itemscope itemtype = "http://schema.org/Article" / *** Sharhlar *** / itemprop = "sharh" itemscope itemtype = "http://schema.org/Comment" / *** Oddiy statik sahifa *** / itemscope itemtype = "http://schema.org / Maqola "/ *** Yon panel (yon panel) *** / itemscope itemtype =" http://schema.org/WPSideBar "> / *** Altbilgi (sayt altbilgisi) *** / itemscope itemtype =" http: / /schema.org/WPFooter "> / *** Sayt navigatsiyasi (asosiy menyu) *** / itemscope itemtype =" http://schema.org/SiteNavigationElement "> / *** Rasmlar *** / itemscope =" " itemtype = "https://schema.org/ImageObject" / *** Sahifaga doimiy havola *** / itemscope itemprop = "mainEntityOfPage" itemType = "https://schema.org/WebPage" / *** Tashkilot * * * / itemscope itemtype = "https://schema.org/Organization" / *** Manzil *** / itemscope itemtype = "http://schema.org/PostalAddress"

Endi mulk teglari.

  • Sahifa (matn) sarlavhasi - itemprop = "sarlavha"
  • Post matni - itemprop = "articleBody" (agar u to'liq matnning bir qismi sifatida tuzilgan bo'lsa, tavsif uchun foydalanish mumkin)
  • Nashr qilingan sana - itemprop = "datePublished"
  • Muallif - itemprop = "muallif"
  • Maqola toifasi - itemprop = "articleSection"
  • Rasm - itemprop = "tasvir"
  • Sharh matni - itemprop = "matn"
  • Sharhlovchi nomi - itemprop = "yaratuvchi"
  • Sharh sanasi - itemprop = "datePublished"
  • Havola (asosiy menyu va rasmga tegishli) - itemprop = "url"
  • Altbilgida mualliflik huquqi yili - itemprop = "copyrightYear"
  • Oxirgi sahifani o'zgartirish sanasi - itemprop = "dateModified"
  • Manzil - itemprop = "manzil"
  • Ko'cha - itemprop = "ko'cha manzili"
  • Indeks - itemprop = "pochta kodi"
  • Manzilning joylashuvi - itemprop = "addressLocality"
  • Telefon - itemprop = "telefon"
  • Tasvir uzunligi - itemprop = "kenglik"
  • Rasm kengligi - itemprop = "balandlik"
  • Logotip - itemprop = "logotip"

Bular biz hozir foydalanadigan asosiy xususiyatlar.

Shablonni mikro-belgilash bo'yicha keyingi harakatlar juda oddiy.

Yuqorida keltirilgan teglar yordamida ob'ekt va xususiyatni belgilashi kerak bo'lgan har bir maydon qandaydir umumiy tegga o'ralgan. Bu div blok tegi, maqola, span yorlig'i, H1 sarlavhasi va boshqalar bo'lishi mumkin. Tushunishni osonlashtirish uchun sarlavha deyarli har doim H1 yorlig'iga o'ralgan bo'lib, u shunday bo'lishi kerak. Teg 2 bo'ladi: ochish va yopish. Va shuning uchun faqat sarlavhalar bilan emas, balki saytning har bir elementi bilan.

Gap shundaki, har bir talab qilinadigan element ob'ekt yorlig'ini (tarkib turini belgilang: maqola yoki sharh yoki e'lonlar ro'yxati va h.k.) va ochilish yorlig'i ichidagi xususiyatlarni o'rnatishi kerak.

Endi mashq qiling. Masalan, bitta yozuv (maqola) fayli single.php mavjud. Keling, uning belgilaridan boshlaylik.

Mikroma'lumotlarni yuborish (maqolalar)

Keling, ob'ektni aniqlashdan boshlaylik. Shablonda umumiy yorliq mavjud bo'lib, u butun post mazmuni maydonini (ham maqola matni, ham sarlavha va sharhlar) o'rab oladi va har biri uchun har xil. Kimdadir bo'lishi mumkin div bloki... Menda bu maqola bor. Tabiiyki, bu teg eng boshida ochiladi, u erda barcha tarkib boshlanadi va kontent tugashi bilan bir joyda tugaydi.

Va eng boshida, maqolaning ochilish yorlig'i ichida, men post sahifasiga kontent maydoni ob'ekt tegini kiritishim kerak (men kodlarni biroz balandroq berdim). Men sizga single.php post faylining yakuniy belgilanishining rasmini (kliklanishi mumkin) beraman, keyin nima bo'lganini va oxirida nima bo'lganini tushuntiraman, agar kimdir tushunmasa. Tasvir katta, ammo bosilishi mumkin, shuning uchun siz uni bosishingiz va uni kattalashtirilgan o'lchamda ko'rishingiz yoki yangi yorliqda ochishingiz va uni to'liq hajmda ko'rishingiz mumkin.

Dastlab, maqolaning barcha kontent maydoni maqola yorlig'i yordamida ochiladi. Bu shunday edi:

Va bu shunday bo'ldi:

Ko'rib turganingizdek, post ob'ekt yorlig'i maqolaning ochilish yorlig'iga qo'shilgan. Endi brauzer bu tarkibni o'z ichiga olgan maydon ekanligini tushunadi. Bu maydonni ob'ekt sifatida qabul qiladi. Bu juda muhim.

Aytmoqchi. Ko'p odamlar maqolalar reytingini plaginsiz o'rnatadilar va Yandex yoki Google validatoridagi sahifani tekshirgandan so'ng, ular ko'rib chiqish ob'ekti ko'rsatilmaganligini yozadilar. Buning sababi, reyting o'z-o'zidan e'lon qilinadi. Siz uni ushbu maydon ichiga joylashtirishingiz kerak, bu esa o'z navbatida kontent maydoni (yoki bekor qilish ob'ekti) sifatida belgilash yorlig'i bilan belgilanishi kerak. Keyin reyting ob'ektga, ya'ni maqolaga tegishli bo'ladi. Shundan keyin hech qanday xato bo'lmaydi.

Keling, jarayonga qaytaylik. Birinchidan, biz ob'ektning ob'ektini joylashtirdik (biz butun asosiy maydonni umumiy teg bilan o'rab oldik), so'ngra uning xususiyatlarini, ya'ni ikkilamchi ma'lumotlarini belgilaymiz: nashr etilgan sana, muallif, maqola tanasi (matnning o'zi), ma'lumotlar. nashriyot (manzil, tashkilot, logotip), oxirgi sahifa o'zgarishi sanasi, asosiy sahifaning manzili va boshqalar. Hammasi bir xil - kerakli elementning har bir ochilish yorlig'i ichida biz mos keladigan parametrlarni belgilaymiz. Quyida men o'zgarishlar kiritilgunga qadar nima sodir bo'lganligi va keyin nima sodir bo'lganligi haqida tushuntirish beraman.

Dastlab, biz butun kontent maydonini o'rab turgan ochilish yorlig'idan keyin darhol 2 qator kodni nusxalaymiz. Menda matnda avvalroq joylashtirilgan, ichida ob'ekt bo'lgan maqola yorlig'i bor.

"/>

  • 1-qator sahifaning manzilini ko'rsatadigan qatorni ko'rsatish uchun javobgardir va bu alohida sahifa asosiy ekanligini aytadi.
  • 2-qator - oxirgi sahifani o'zgartirish sanasi.

Keyin, darhol keyingi qatorda biz nashriyot haqidagi ma'lumotlarni beramiz, ya'ni. materiallarni kim nashr etishi haqida. Bunga bir vaqtning o'zida bir nechta ob'ektlar kiradi (Tashkilot - uning ichida manzil, rasm - logotip). Men kodni beraman, siz undagi maslahatlarni faqat o'zingizning ma'lumotlaringiz bilan almashtirasiz. Haqiqiy yoki yo'qligini tikish sizga bog'liq, lekin agar Google hali ham qidiruv natijalarini yaxshilash va sizga bo'lgan ishonchni oshirish uchun ma'lumotlaringizni ko'rsatish uchun buni qilsa, men haqiqiylarini ko'rsataman. Umuman olganda, bu hammaning ishi. Mana kod.

Ko'cha nomi indeks mamlakat, viloyat, shahar telefon

E'tibor bergan bo'lsangiz, yuqoridagi kodlarda displey mavjud: hech qanday uslub yorlig'i, bu ma'lumotlar sahifada ko'rsatilishi shart emas, faqat qidiruv tizimi uni ko'rishi uchun manba kodida ko'rsatilishi kerakligini aytadi. Aslida, bu menga kerak bo'lgan narsa. Ushbu teg 2 va 9-qatorlarda joylashgan va logotip va manzilning ko'rinishini yashiradi. Agar siz ko'rsatmoqchi bo'lsangiz, ushbu uslublarni olib tashlang. Kelajakda blog dizaynini tubdan qayta ishlab chiqqanimda, uni dizaynga mos keladigan ixcham, chiroyli blog qilib joylashtirganimda va men haqimda ma’lumot berganimda shunday qilaman.

Logotipga kelsak, ko'pchilikda u yo'q. Men quyidagilarni qilishni taklif qilaman - kichik rasm yarating va unga manzil bilan sayt nomini yozing (logotipning eng oddiy versiyasi) yoki fotosuratingizni yuklang (eng dangasa variant). Menda logotip bor, shuning uchun uni ro'yxatdan o'tkazdim.

Endi biz quyidagi ma'lumotlarni belgilaymiz. Bu erda osonroq bo'ladi. Siz shunchaki u yoki bu ma'lumotni (sarlavha, toifa, nashr etilgan sana, muallif) aks ettiruvchi boshqa barcha kerakli kodlarni topishingiz kerak va ularning ochilish teglari ichiga schema.org belgilash xususiyatlarining kerakli teglarini kiritishingiz kerak. .

Post sarlavhasi. Bu bo'lgandi:

Nashr qilingan sana. Bu bo'lgandi:

Konstantin Xmelev

". $ joriy_toifa_nomi."

". $ joriy_toifa_nomi."

Maqola matni. Bu bo'lgandi:

bu erda uchinchi tomon kodi

bu erda uchinchi tomon kodi

Amalda, buni o'zingiz qilishingiz kerak. Farqlar faqat teglarda bo'ladi, ularning ichida siz ob'ekt va mulk teglarini joylashtirishingiz kerak. Bundan tashqari, ularning tartibi boshqacha bo'lishi mumkin. Yoki biror narsa umuman sodir bo'lmasligi mumkin, masalan, nashr etilgan sana yoki toifaga havola bo'lmaydi. Keyin ushbu ma'lumotlarni shablonga qo'shishingiz kerak.

Maqolaning so'nggi paragrafida men sizga to'satdan biror narsa etishmayotgan bo'lsa, foydalanishingiz mumkin bo'lgan kodlarni beraman.

Shunday qilib, endi biz Yandex va Google validatorlarida sahifamizni tekshirishimiz kerak.

Google validatorida bu deyarli bir xil bo'ladi. Ushbu ma'lumotlarda hech qanday xato bo'lmasligi kerak. Yagona ogohlantirish biz davom etayotgan tasvirlarning mikro-belgilashiga tegishli.

Siz har bir rasmni qo'llaringiz bilan belgilashingiz, uni tasvirlarning mohiyati bilan o'rashingiz va kerakli xususiyatlarni belgilashingiz mumkin, ammo har bir postda bir necha o'nlab tasvirlar mavjud bo'lsa, bu juda noqulay. Biz quyidagi koddan foydalanamiz.

Funktsiya micro_images_captions ($ a, $ attr, $ content = null) (ko'chirma (qisqa kod_atts (massiv ("id" => "", "align" => "alignnone", "width" => "", "caption" = > ""), $ attr)); agar (1> (int) $ kengligi || bo'sh ($ sarlavha)) $ mazmunini qaytaradi; $ sarlavha = html_entity_decode ($ sarlavha); agar ($ id) $ id = "id" = "". esc_attr ($ id). "" "; qaytish"

". do_shortcode ($ kontent)."

". $ sarlavhasi."

";) funktsiyasi micro_image ($ kontent) ($ ar_mk ="! ! si "; $ br_mk =" "; $ content = preg_replace ($ ar_mk, $ br_mk, $ content); return $ content;) add_filter (" the_content "," micro_image "); add_filter (" img_caption_shortcode "," micro_images_captions ", 10, 3);

Endi siz har bir maqolaga rasm belgilash tegini qo'shishingiz shart emas. Biz validatorga boramiz, sahifani kamida bitta rasm bilan tekshiring va quyidagi rasmni ko'ring.

Hech qanday xato bo'lmasligi kerak. Hammasi aniq. Har bir rasm yuqoridagi skrinshotdagi kabi belgilar bilan o'ralgan bo'lishi kerak.

Asosiy sahifani mikrobelgilash

Bu erda siz e'lonlar ro'yxatini ko'rsatadigan kodni e'lonlar ro'yxatining ob'ekt yorlig'i bilan o'rashingiz kerak. Bu xuddi shu tarzda amalga oshiriladi. Shablondagi barcha kodlarni o'rab turgan umumiy teg ichiga kerakli tegni joylashtiring (blog postlari ro'yxatining mohiyati blogpostingdir yoki uni post sahifasiga o'xshash qilish mumkin - maqola). Rasmga qarang (bosish mumkin).

Ko'rib turganingizdek, mening e'lonlarim ro'yxati li list tegi bilan ko'rsatiladi, ya'ni har bir e'lon unga ilova qilinadi. Ro'yxatning ichida postning o'zi bilan deyarli bir xil - sanalar, muallifning ismi, sarlavhalari, manzili, logotipi, nashriyot va boshqalar mavjud. Siz buni blog sahifalarida juda yaxshi ko'rishingiz mumkin. Tuzilishi o'xshash, faqat maqola matni to'liq emas. Umuman olganda, belgilash post sahifasi bilan bir xil, blogposting e'lonlari ob'ekt tegi bundan mustasno.

Bundan tashqari, e'lon sahifasi uchun biroz boshqacha tasvirni belgilash kodidan foydalanish kerak, chunki u erda nafaqat rasmlar, balki eskizlar ham ko'rsatiladi. Eskizlarni mikro belgilash deyarli bir xil kod yordamida amalga oshiriladi. Agar ilgari ularni qo'llar bilan belgilash kerak bo'lsa, endi bu mantiqiy emas. Mana kod (uni ham functions.php fayliga joylashtiring).

Funktsiya micro_thumbnail ($ kontent) ($ ar = "!! si"; $ br = ""; $ kontent = preg_replace ($ ar, $ br, $ kontent); qaytarish $ kontent;) add_filter ("post_thumbnail_html", "micro_thumbnail" ");

Biz tekshiruvchiga murojaat qilamiz va tekshiramiz bosh sahifa... Men sizga faqat 2 ta e'lonni ko'rsatdim, tk. to'liq ekran juda katta bo'ladi.

Ushbu sahifada qancha e'lonlar bo'lsa, shuncha ko'p blogposting postlari bo'ladi. Agar siz blogposting o'rniga maqoladan foydalangan bo'lsangiz, e'lonlar soniga qarab sizda bir nechta maqolalar bo'ladi.

Asosiy sahifa tuzilishi jihatidan toifalar va arxivlar sahifalariga o'xshash bo'lgani uchun ularning mikro-belgilashlari bir xil. E'lonlar ro'yxati ushbu sahifalarning barcha turlarida ko'rsatiladi.

Shunday qilib, sharhlar belgilarini tahlil qilish qoladi, bu yangi boshlanuvchilar uchun juda murakkab jarayon. Odatiy statik sahifalar ham qoladi. Ularni belgilash printsipi postlarga o'xshaydi, shuning uchun men uni ko'rsatmayman.

Shunday qilib, sharhlar. functions.php funksiya fayliga bitta kod kiritishdan va sayt sahifalarida sharhlarni aks ettiruvchi funksiyani o'zgartirishdan oldin vazifani soddalashtiramiz. Birinchidan, biz quyidagi kodni olamiz va uni functions.php faylining eng boshida, ochilish tegidan oldin joylashtiramiz.< ?php. Если будет выдавать ошибку, можно попробовать его разместить после закрывающего тега?>faylning eng oxirida.

Ushbu koddagi PHP kodining ochilishini eng boshida olib tashlashingiz kerak bo'lganda joylashtirish varianti ham mavjud (o'chirish< ?php) и в самом конце его закрытие (удалить?>). Keyin kodni ochish (yopish) php tegining oldiga yoki orqasiga emas, balki boshqa barcha funksiyalar yonidagi ushbu teglar ichiga joylashtirishingiz kerak. Ba'zida aynan shu turdagi joylashtirish ishlayotganida muammoga duch keldim.

Kod barcha shablonlarda ishlamaydi!

< id = "sharh-">

% s:
"), izohni_olish_author_link ());?>comment_approved):?>
$ add_below, "chuqurlik" => $ chuqurlik, "maks_chuqurlik" => $ args ["maksimal_chuqurlik"]))); ?>
$ add_below, "chuqurlik" => $ chuqurlik, "maks_chuqurlik" => $ args ["maksimal_chuqurlik"]))); ?>

Keyingi qadam comments.php faylini ochish va sharhlarni ko'rsatish funksiyasini izlashdir. Bu shunday ko'rinadi:

< ?php wp_list_comments(); ?>

Bu uning soddalashtirilgan versiyasi va agar shunday qilsangiz yaxshi bo'ladi. Keyin biz uni xuddi shu kod bilan almashtiramiz, faqat funktsiya faylida ilgari joylashtirgan funktsiyaga qo'ng'iroq qilish bilan bir nechta o'zgarishlar bilan.

< ?php wp_list_comments("callback=schema_comment"); ?>

Vaziyat bo'lishi mumkinki, kodning shunchaki versiyasi o'rniga allaqachon kiritilgan parametrlarga ega biroz o'zgartirilgan versiya paydo bo'ladi, masalan:

< ?php wp_list_comments("type=comment&avatar_size=48"); ?>

Bunday holda, biz & belgisi orqali sharh belgilash funksiyamizga qayta qo'ng'iroq = schema_comment qo'ng'iroqlarini qo'shamiz. Bu shunday chiqadi:

< ?php wp_list_comments("type=comment&avatar_size=48&callback=schema_comment"); ?>

Mening misolimda, bu hali ham ancha murakkab. Bu funksiya oldingi kod qatoridagi kabi parametrlarni o'z ichiga oladi. Ammo ular biroz boshqacha ko'rsatiladi.

< ?php wp_list_comments(array("style" =>"ol", "short_ping" => rost, "avatar_size" => 74,)); ?>

Agar sizda bunday imkoniyat mavjud bo'lsa, unda barcha parametrlar yonidagi qavslar ichida biz yangisini kiritamiz. Biz quyidagi kod bilan yakunlaymiz.

< ?php wp_list_comments(array("style" =>"ol", "short_ping" => rost, "avatar_size" => 74, "qayta qo'ng'iroq" => schema_comment,)); ?>

Funktsiya kodini functions.php fayliga joylashtirganimizda, shuningdek, comments.php faylida saytdagi sharhlarni ko'rsatish kodini biroz o'zgartirganimizda, sharhlar mikro-belgilash ishini tekshirishimiz mumkin.

Sharhlarning to'g'ri belgilanishining belgisi ularning maqolaning asosiy qismida hech qanday bo'sh joy yoki bo'sh joysiz joylashishidir. Har bir sharh maqola ichida aniq ko'rsatilishi va Yandex validatorida ko'rsatilishi kerak.

Ko'rib turganingizdek, sharhlar maqolaning asosiy qismida joylashgan. Shunday qilib, u siz bilan bo'lishi kerak.

Bundan tashqari, qidiruv tizimlariga har bir post uchun sharhlar sonini aytishingiz mumkin. Buning uchun teg ham mavjud - itemprop = "commentCount". Avvalgi harakatlarga o'xshab, sharhlar sonini ko'rsatish uchun funksiyani o'rab turgan ochilish yorlig'i ichiga joylashtirilishi kerak. Bu funksiya deyiladi:

< ?php comments_number ?>

Ushbu funktsiyani chiqarishning to'liq chizig'i boshqacha bo'lishi mumkin, ammo uning mohiyati bir xil. Ichkarida izohlar_raqami bo'lishi kerak.

Men uchun bu funksiya o'rash yorlig'i bilan birga quyidagi to'liq ko'rinishga ega.

< ?php comments_number("Комментариев пока нет. Будьте первым!","1 Комментарий","Комментариев: %") ?>

Shablonga qarab, funktsiyaning joylashishini topishingiz kerak. Qoidaga ko'ra, hamma narsa bir xil comments.php faylida. Mening shablonimda bu funksiya sharh shaklini ko'rsatishdan oldin single.php faylida edi. Mening funksiyam span matn yorlig'i bilan o'ralganligi sababli, uning ichiga commentCount xususiyatini kiritaman.

Biz tekshiruvchiga murojaat qilamiz.

Muhim. Hech qanday yozuv va so'zsiz sharhlar sonini o'rashingiz kerak. Belgilash faqat raqamlarni qabul qiladi!

Diqqat: Men funktsiyalar muallifi emasman. Sharhlar va tasvirlarni avtomatik belgilash funksiyalari http://seo-mayak.com/ saytidan olingan. Men shunchaki nomlarni biroz o'zgartirdim + qayerdadir biror narsani tuzatdim.

Sayt sarlavhasini mikro belgilash (sarlavha)

Shablon header.php faylini oching va ochilish sarlavhasi tegini qidiring. Uning ichiga biz kiritamiz:

Itemscope elementtype = "http://schema.org/WPHeader"

  • Sarlavha - itemprop = "sarlavha"
  • Tavsif - itemprop = "tavsif"

Mana rasmdagi tugallangan versiya.

Tasdiqlovchi buni shunday ko'rsatadi.

Yon paneldagi mikroma'lumotlar (yon ustun)

Bu erda ham hamma narsa oddiy. Yon panelni ko'rsatish uchun mas'ul bo'lgan faylni oching, odatda sidebar.php. Biz butun yon panelning butun tarkibini o'rab oladigan blok yoki tegni topamiz va uning ichiga biz yon panelga mos keladigan kontent tegini joylashtiramiz.

Register_sidebar (massiv ("nom" => __ ("Yon panelga vidjetlar kiritish maydoni", "xmarkup"), "id" => "asosiy vidjet maydoni", "tavsif" => __ ("", " xmarkup ")," vidjetdan oldin "=>" "," after_widget "=>" "," sarlavhadan oldin "=>" "," sarlavhadan keyin "=>" ",));

Bizni mos ravishda vidjet sarlavhasidan oldin va keyin nima koʻrsatilishini belgilaydigan oxirgi 2 satr (sarlavhadan oldin va sarlavhadan keyin) qiziqtiradi. Ko'rib turganingizdek, men oldin va keyin matn oralig'i tegi bo'lishini belgilab qo'ydim. Siz uni bo'sh qo'yishingiz yoki boshqa teglarga ega bo'lishingiz mumkin, masalan, div blok tegi. Agar bo'sh bo'lsa, men versiyamga o'xshab span tegini qo'shishni tavsiya qilaman va ochilish yorlig'i (old_title qatori) ichida name xususiyatini belgilang (itemprop = "name"). Quyidagi qurilish paydo bo'ladi:

Register_sidebar (massiv ("nom" => __ ("Yon panelga vidjetlar kiritish maydoni", "xmarkup"), "id" => "asosiy vidjet maydoni", "tavsif" => __ ("", " xmarkup ")," before_widget "=>" "," after_widget "=>" "," before_title "=>" "," sarlavhadan keyin "=>"",));

Shablonga qarab kodning bir nechta bunday qismlari bo'lishi mumkin. Keyin barcha qismlarni yakunlash kerak bo'ladi. O'zgarishlardan so'ng, biz Yandex validator orqali yon paneldagi belgilarni tekshiramiz va siz quyidagi rasmni olishingiz kerak.

Vidjetlar soniga qarab, tekshirish paytida tegishli qatorlar soni ko'rsatiladi.

Altbilgining mikro-belgisi (podval)

Footer.php ni oching va kolontiterning butun mazmunini, jumladan mualliflik huquqlarini o'rab oladigan umumiy blokni qidiring. Ochilish yorlig'i ichiga itemscope ob'ekt tegini joylashtiring itemtype = "http://schema.org/WPFooter".

Mualliflik huquqi sanasini o'z ichiga olgan ochilish yorlig'i ichiga itemprop = "copyrightYear" xususiyat tegini qo'ying.

Mualliflik huquqiYear yorlig'i ichida raqam sifatida faqat sana bo'lishi juda muhim. Hech qanday begona so'zlar va belgilar yo'q, aks holda u xato beradi.

Ish tartibida siz validatorda quyidagilarni ko'rasiz.

Asosiy navigatsiya menyusining mikro tartibi

Bu erda ham hamma narsa juda oddiy, ammo bu variant hamma uchun ishlamaydi, chunki shablonlarda menyularni qurish va ko'rsatish tuzilishi boshqacha.

Menyuni ko'rsatadigan kod header.php sarlavha faylida joylashgan. Biz unga boramiz va quyidagi tarkibni qidiramiz:

< ?php wp_nav_menu(array("theme_location" =>"header-menu-top", "container" => "")); ?>

Chiziq biroz boshqacha bo'lishi mumkin. Asosiysi, wp_nav_menu ni o'z ichiga olgan qatorni topishdir. U teglarga o'raladi. Men uchun va boshqa ko'pgina mavzularda printsip shunga o'xshash. Nav tegidan foydalaniladi. Ochilgan nav yorlig'i ichiga biz ushbu elementning mohiyatini, ya'ni asosiy menyuni ko'rsatadigan tegni joylashtiramiz:

Itemscope elementtype = "http://schema.org/SiteNavigationElement"

Keyinchalik, menyudagi har bir havolaga itemprop = "url" atributi qo'shilganligiga ishonch hosil qilishingiz kerak, bu havola ekanligini ko'rsatadi. Agar sizda har bir menyu elementi qo'lda yaratilgan oddiy saytingiz bo'lsa, ushbu atributni har bir havolaning tegiga joylashtiring. Agar sizda WordPress saytingiz bo'lsa va menyu funksiyalar.php faylida standart tarzda tuzilgan bo'lsa, siz quyidagi kodni bir xil faylga joylashtirishingiz kerak, u avtomatik ravishda har bir menyu elementi uchun ushbu atributni almashtiradi.

Nav funksiyasi ($ kontent) ($ naqsh = "

Yandex validatoridagi har qanday sahifani (menyu mavjud) tekshirgandan so'ng, biz barcha menyu elementlari ro'yxati bilan birga ob'ekt tegini ko'rishimiz kerak.

Agar shabloningiz uchun funksiya ishlamasa, siz validatordagi havolalarni emas, faqat ob'ektni ko'rasiz.

Ikkinchi holda, belgilashni menyudan olib tashlash yaxshiroqdir, chunki bu hech qanday ma'noga ega emas va Google-ning tuzilgan ma'lumotlarni tekshirish vositasi ogohlantirish beradi.

Bu mikro-belgilashning asosiy qismini yakunlaydi. Oddiy blogga (axborot sayti) boshqa hech narsa kerak emas.

Manzilning mikro-belgisi (aloqa ma'lumotlari)

Agar saytingizda tashrif buyuruvchilarga aloqa ma'lumotlarini (tashkilot nomi, manzili, telefon raqami va boshqalar) ko'rsatsangiz, ularni belgilashingiz ham mumkin. Bu juda sodda tarzda amalga oshiriladi. Quyida men kerakli sahifaga (masalan, kontaktlar) html rejimida joylashtirishingiz va ma'lumotlaringizni kiritishingiz kerak bo'lgan kodni beraman.

Sayt nomi indeks, mamlakat, viloyat, shahar Ko'cha nomi Telefon: telefon Email: Sizning pochtangiz [email protected] kabi

E'tibor bering, oddiy pochtada elektron pochta bu holatda mos kelmaydi. Sizga [email protected] shaklidagi pochta kerak, ya'ni domendagi pochta.

Ushbu eslatmada amaliyot tugadi. WordPress-dagi mikro ma'lumotlar Yandex-da ham, Google-da ham amalga oshirilishi va bitta xatosiz bo'lishi kerak.

Endi, men va'da qilganimdek, shabloningiz belgilash uchun zarur bo'lgan barcha ma'lumotlarni ko'rsatmasa, sizga kerak bo'lishi mumkin bo'lgan ba'zi kodlarni beraman.

Foydali ma'lumot

Men sizga allaqachon o'rnatilgan belgilash xususiyatlariga ega kodlar ro'yxatini beraman. Aslida, siz ularni shablonning to'g'ri joylariga kiritishingiz va ushbu teglarda yozilgan sinflarga uslublarni o'rnatishingiz kerak.

/ *** e'lon qilingan sanani ko'rsatish *** / / *** muallifning chiqishi *** / Muallif: / *** sharhlar sonini ko'rsatish *** / Izohlar: / *** chiqish sahifasi sarlavhasi *** /

/ *** kategoriya chiqishi *** / ism; $ current_category_link = $ cat-> cat_ID; )) aks-sado "
". $ joriy_toifa_nomi.""; ?>

Shablonlarga o'rnatilgan hentry belgilari tufayli yuzaga keladigan xatolarni bartaraf etish muammosi bilan menga juda ko'p miqdordagi pochta so'rovlari mavjud. Xatolar quyidagicha:

Yo'qolgan: kirish sarlavhasi
Yo'qolgan: yangilangan
Yo'qolgan: muallif

Bu holatga nima sabab bo'lmoqda? Hammasi oddiy - shablonga henrty klassi avtomatik ravishda qo'shiladi, ya'ni sarlavha, sana va muallifga tegishli teglar (sinflar) qo'shilishi kerak. Siz buni qila olasiz - bu sinflarni qo'shing. Bunda men unchalik ma'no ko'rmayapman, chunki biz shablonni schema.org lug'ati bilan belgilab qo'yganmiz va biz bir necha mikroformatlardan hech qanday foyda olmaymiz. Shuning uchun, eng tez va eng oson yo'l - bu henty sinfini shablondan olib tashlaydigan kichik funktsiyadan foydalanish va Google hentry mikroformatlarini ham topa olmaydi.

// sinf hentry boshlash funksiyasini olib tashlash wph_remove_hentry_class ($ sinflar) ($ sinflar = array_diff ($ sinflar, massiv ("hentry")); qaytish $ sinflar;) add_filter ("post_class", "wph_remove_hentry_class"); // hentry end sinfini olib tashlang

Funktsiya, albatta, functions.php fayliga qo'shiladi. Agar sizda allaqachon bunday xatolar bo'lgan bo'lsa yoki paydo bo'lishni boshlagan bo'lsa, asta-sekin, Google mikro-belgilash roboti saytingiz sahifasini o'rganayotganda, ular yo'qolib keta boshlaydi. Agar ular u erda bo'lmasa, ular paydo bo'lmaydi.

O'zingizni qiynashingiz va sarlavha, sana va muallifni ko'rsatishga kerakli teglarni qo'shishingiz mumkin bo'lgan yana bir variant mavjud. Keyin Google ushbu belgini topadi va uni taniydi. Agar siz bunday harakatlarga qaror qilsangiz, unda sarlavha (1), sana (2) va muallif (3) uchun PHP chiqish kodlarini topishingiz kerak.

Mikroformat teglari bilan tugallangan kodlar quyidagicha bo'ladi:

Hamma narsani shu tarzda o'rash ham yaxshi bo'lardi.

Keyingi nuqta bularning barchasini qilish juda qiyin bo'lgan yoki juda dangasa bo'lganlar uchun bo'ladi.

Men siz uchun hamma narsani qilaman

Men sizga yordam berishim mumkin. Lekin, albatta, bepul emas. Izohlarda savollaringizga aniq javob berishdan tashqari, kichik to'lov evaziga shabloningizga yuqoridagi barcha mikro-belgilashlarni kiritishim mumkin.

Ushbu xizmatning narxi 1000 rublni tashkil qiladi.

Men barcha asosiy ma'lumotlarni belgilayman, xususan:

  1. Bosh sahifa + arxiv va sarlavhalar sahifalari;
  2. Post sahifasi (yozuvlar);
  3. Oddiy statik sahifa;
  4. Sayt sarlavhasi;
  5. Podval;
  6. Yon panel;
  7. Navigatsiya menyusi (agar shablon bir-biriga zid bo'lmasa);
  8. Non bo'laklari + reyting (ixtiyoriy + 200 rubl).

Ushbu parametr shaxsiy bloglar, shuningdek, axborot saytlari uchun javob beradi. Men WordPress dvigatelini ham, oddiy html saytini ham hal qila olaman. Dastlab, men hech narsa qilmayman, chunki birinchi navbatda shabloningizni tahlil qilaman va umuman qila olsam, javob beraman. Shablondagi biror narsani qayta bajarishingiz yoki uni tugatishingiz kerak bo'lishi mumkin. Har birining individual yondashuvi bor.

Ish printsipi quyidagicha. Siz men bilan "Menga yozing" sahifasi orqali bog'lanasiz (shuningdek, ushbu maqolaning sharhlarida men bilan bog'lanishingiz mumkin). Darhol menga saytingizga havolani + shablonni yuklab olish uchun havolani yuboring. Men tahlil qilaman va sizga eng yaqin vaqt ichida javob beraman (1-2 kun). Agar hamma narsa mening qo'limda bo'lsa, to'lovdan so'ng darhol markirovkaga o'taman.

Hamma do'stlar. Umid qilamanki, bu material sizga yordam berdi. Bu yerda hamma narsani qanday qilish kerakligini 2 so'z bilan yozish maqsadim yo'q edi. Maqsad saytda belgilashni amalga oshirish bo'yicha eng yaxshi va eng keng qamrovli qo'llanmani yozish edi. Umid qilamanki, bu amalga oshdi. Buni sharhlaringiz, yoqtirishlaringiz va baholaringiz bilan tasdiqlashingiz mumkin.

Keyingi maqolalarda ko'rishguncha.

Hurmat bilan, Konstantin Xmelev!

Endi odatiy WordPress sharh tizimini eng mashhur Facebook ijtimoiy tarmoqlaridan birining sharhlari bilan almashtirish modaga aylandi. Biz ilgari nashr qilgan edik, ammo o'shandan beri ko'p vaqt o'tdi va endi tayyor WordPress plagini tufayli ushbu protsedura sezilarli darajada soddalashtirildi. Shunday qilib, bu safar ancha oson bo'ladi.

Facebook sharhlarini saytingizga qanday joylashtirishni biroz keyinroq aytib beramiz, lekin avval biz bunday almashtirishning barcha ijobiy va salbiy tomonlarini aniqlashga harakat qilamiz.

Facebook sharhlari: ijobiy va salbiy tomonlari

Bundan tashqari, deb atalmish omil anonimlik... Facebook-dan spam-sharhlar qo'shilishi dargumon, chunki ularning barchasi haqiqiy foydalanuvchi hisoblari bilan bog'langan.

Ammo shu bilan birga, siz bunday tizimning kamchiliklarini topishingiz mumkin. Ko'pgina foydalanuvchilar anonimlikni afzal ko'rishadi va umuman emas, chunki ular yomon narsa yozishni yoki spamni qoldirishni xohlashadi. Yo'q. Gap faqat psixologik lahzada va ular omma oldida gapirganda boshdan kechiradigan noqulaylik va xijolat tuyg'usida. Bu omil foydalanuvchi faolligini kamaytirishi mumkin.

Disqus kabi boshqa sharhlash tizimlaridan farqli o'laroq, Facebook sharhlari mahalliy WordPress sharhlari bilan sinxronlanmaydi. Ularni to'liq almashtiradilar. Agar eski postlarda allaqachon WordPress sharhlari bo'lsa, ular Facebook formasi orqali qo'shilgan yangi sharhlardan oldin yoki keyin paydo bo'ladi.

Bu, ehtimol, Facebook sharhlarining barcha ijobiy va salbiy tomonlari.

Agar siz ularni WordPress saytingizga o'rnatish haqidagi fikringizni o'zgartirmagan bo'lsangiz, buni qanday qilish haqida quyida o'qing.

WordPress uchun Facebook Comments plagini

Birinchidan, plaginni o'rnating va faollashtiring Facebook sharhlari va uni Sozlamalar → Facebook izohlari ostida paydo bo'ladigan menyuda sozlang.


Saytingizdagi sharhlardan foydalanishni boshlash uchun avvalo Facebook ilovasini yaratishingiz kerak.

Agar siz ilgari ilova yaratgan bo'lsangiz, uning ID ma'lumotlaridan hoziroq foydalanishingiz mumkin. Aks holda, sahifada yangisini yaratishingiz kerak bo'ladi Facebook ilovalari:

Yangi yaratilgan dasturning boshqaruv panelida uning identifikatori ko'rsatiladi, uni nusxalash va plagin sozlamalariga joylashtirish kerak. Ammo bundan oldin, "Platformani qo'shish" tugmasi yordamida "Sozlamalar" da saytingizdagi dasturni sozlang.

Yangi oyna paydo bo'ladi, unda siz bosishingiz kerak veb sayt va uni platformangiz sifatida tanlang.

Shunday qilib, dastur sozlamalari sahifasida "Veb-sayt" yangi bo'limi paydo bo'ladi, unda siz saytingiz manzilini belgilashingiz mumkin.

O'zgarishlarni saqlang, ilova identifikatoridan nusxa oling va uni saytingizning plagin sozlamalariga joylashtiring.

Agar siz Facebook ilovasini qanday o'rnatishni tushunmagan bo'lsangiz, mana yana bir ilova. qisqa ko'rsatma bizning saytimiz uchun misol bilan ingliz tilida:

Ushbu Facebook sharh plaginida sozlash uchun juda ko'p imkoniyatlar mavjud. Standart sozlamalar ko'pchilik saytlar bilan ishlashi kerak. Biroq, siz ularni o'zingizning xohishingiz bilan o'zgartirishingiz va o'zgarishlarni saqlashingiz mumkin.

Endi siz yangi sharhlash tizimi saytingizda to'g'ri ishlayotganligini tekshirishingiz mumkin.

Fikrlar moderatsiyasi

Administrator huquqlariga ega bo'lganingiz uchun siz yangi sharhlar haqida bildirishnoma olasiz. Siz ularni boshqarishingiz va ularni nashr etish yoki bermaslik haqida qaror qabul qilishingiz mumkin.

Shuningdek, sozlamalarda yangi moderator qo'shishingiz mumkin:

Umid qilamanki, ushbu qo'llanma aniqlab berdi va sizga WordPres bo'lmagan saytingiz uchun Facebook sharhlarini o'zingiz sozlashingizga yordam berdi.

Ushbu darsda men qanday qilib haqida gapiraman HTML, CSS, PHP da sharhlar... Sharhlar veb-sahifada ko'rinmaydigan matndir. Ular veb-ustalar uchun barcha turdagi tushuntirishlar, eslatmalar, tavsiflar uchun ishlatiladi, bu sizga hujjatni tuzish imkonini beradi. Kodni disk raskadrovka qilishda sharhlar ajralmas bo'lib, ular sizga veb-sahifaning belgilarini tezda ko'rib chiqish va kerakli blokni topish imkonini beradi. Ko'pincha sharhlar HTML kodini disk raskadrovka qilish uchun ishlatiladi. Misol uchun, ma'lum bir kod blokini ishlamasligi uchun vaqtincha sharhlashingiz mumkin va agar kerak bo'lsa, uni osongina tiklashingiz mumkin.

HTML sharhlari

HTMLda izohlar belgilar yordamida shakllanadi:... Shunday qilib, bu belgilar orasidagi har qanday matn sharhdir. Keling, bir misolni ko'rib chiqaylik:

CSS-dagi sharhlar

CSS sharhlari quyidagi belgilar yordamida yaratiladi: / * va * /. Sharh yaratish uchun veb-sahifa kodini ushbu belgilar orasiga joylashtirish kifoya:

/ * Tana uchun uslublar bilan blokning boshlanishi * / tanasi (fon: #efeded; font-family: Verdana, Helvetica, sans-serif; shrift-size: 12px; chekka: 0px; toʻldirish: 0px;) / * Oxiri tana uchun uslublar bilan blok * /

PHP sharhlari

PHP sharhlari bir qatorli yoki ko'p qatorli bo'lishi mumkin:

1) PHPda bir qatorli izohlar quyidagi belgilar yordamida yaratiladi: //. Bu belgini satr oldiga qo'yish kifoya, u izohlanadi.Bu variant sharh faqat bitta satrdan iborat bo'lgan hollarda qo'llaniladi.

2) Ko'p qatorli izohlarni amalga oshirish uchun quyidagi belgilar qo'llaniladi: / * va * /. Agar sharh bir nechta satrlarni qamrab olsa, ushbu parametr foydali bo'ladi.

Shunday qilib, biz qilishni o'rgandik

Bu safar biz sharhlar qo'shish uchun oddiy AJAX tizimini qilamiz. Bu JSON yordamida JQuery va PHP / MySQL o'rtasida samarali o'zaro ishlashga qanday erishish mumkinligini ko'rsatadi. Tizim shunday ishlaydiki, qo'shilgan sharhlar sahifaga to'liq qayta yuklanmasdan joylashtiriladi, bu sayt faqat foydalanuvchi kompyuterida ishlayotgandek tuyuladi va shu bilan sahifani qo'shilgan holda qayta yuklash uchun biroz vaqt kutish zaruratidan qochadi. izoh.

Mana biz amalga oshirishni rejalashtirgan narsalarning taxminiy demosi:

1-qadam - XHTML

Birinchidan, sharh belgilarini ko'rib chiqaylik. Ushbu kod PHP tomonidan sharhda yaratilgan, biz uni bir zumda ko'rib chiqamiz.

Demo.php

Ism
2010 yil 30 iyul

Izoh

Avatar sinfining div-da avatarga mos keladigan giperhavola mavjud (agar foydalanuvchi sharh qo'yishda haqiqiy avatar havolasini ko'rsatgan bo'lsa), aytaylik gravatar.com saytidan. Xo'sh, biz PHP bilan ishlaganimizda bunga qaytamiz. Va nihoyat, bizda DIV-larda ism va vaqt, shuningdek sharh, ya'ni xatboshidagi matnning o'zi bor.

XHTML qismidagi yana bir muhim element - bu sharhni yuborish shakli (URL maydonidan tashqari barcha maydonlar talab qilinadi).

Demo.php

Fikr qo'shing

2-bosqich - PHP

PHP MySQL ma'lumotlar bazasiga ulanishlarni boshqaradi va sharh belgilarini yaratadi. Bundan tashqari, oxirida qabul qilishda AJAX mavjud va sharhni sharhlar jadvaliga kiritadi. Quyidagi sahifa uchun sharhlarni ko'rsatadigan kodni ko'rishingiz mumkin.

Demo.php / * / Barcha sharhlarni tanlang va $ sharhlar qatorini to'ldiring * / $ sharhlar = massiv (); $ natija = mysql_query ("Tanlash * FROM sharhlar ORDER BY ID ASC"); esa ($ qator = mysql_fetch_assoc ($ natija)) ($ sharhlar = yangi izoh ($ qator);)

MySQL so'rovi ma'lumotlar bazasidan barcha yozuvlarni oladi va $ sharhlar massivini quyida ko'rib turgan sharhlar sinfi ob'ekti bilan to'ldiradi. Ushbu massiv skript bajarilgandan so'ng chiqariladi.

Demo.php / * / Sharhlarni birma-bir ko'rsatish * / foreach ($ izohlarni $ c sifatida) (echo $ c-> belgilash ();)

Har bir izohda sahifani chop etish uchun HTML kodini yaratuvchi belgilash () usuli mavjud. Buni quyidagi usul va sinfdan ko'rishingiz mumkin.

Sinf ma'lumotlar bazasidan satr oladi (mysql_fetch_assoc () bilan olinadi) va uni $ ma'lumotlar o'zgaruvchisida saqlaydi. U faqat ushbu sinf usullari uchun mavjud va unga tashqaridan kirish mumkin emas.

Comment.class.php - 1-bosqich klassi Sharh (xususiy $ maʼlumotlar = massiv (); umumiy funktsiya __konstruksiya ($ qator) (/ * / Konstruktor * / $ this-> maʼlumotlar = $ satr;) umumiy funksiya belgisi () (/ * / Bu usul XHTML belgilash sharhini chiqaradi * / // Taxallus yarating, shunda biz har safar // $ this-> maʼlumotlar maʼlumotlarini: $ d = & $ this-> data; $ link_open = ""; $ link_close = ""; agar ($ d ["url"]) (// Agar shaxs URLni // izoh qo'shganda to'ldirgan bo'lsa // Giperhavolani aniqlang $ link_open = ""; $ link_close = "";) // Vaqtni o'zgartirish $ d [ "dt"] = strtotime ($ d ["dt"]); // Standart Gravatar rasmlari uchun talab qilinadi: $ url = "http: //" .dirname ($ _ SERVER ["SERVER_NAME" ]. $ _SERVER ["REQUEST_URI "])." / img / default_avatar.gif "; qaytish"

". $ link_open." ". $ link_close."
". $ link_open. $ d [" nomi "]. $ link_yopish."

". $ d [" tana "]."

"; }

Ushbu skript sharhlarda avatarlarni ko'rsatish uchun Gravatardan foydalanadi. Gravatar-dan foydalanmaganlar uchun bu avatarni elektron pochta manzilingiz bilan bog'lash imkonini beruvchi juda foydali xizmatdir. Xeshni md5 () ga o'tkazish orqali avatarni osongina olish mumkin.

Yuqoridagi 39-qatorga e'tibor bering - skript o'zi joylashgan URL manzilini aniqlashga harakat qiladi va default_avatar.gif tasvirining aniq manzilini aniqlaydi. Ushbu GIF Gravatar-ga md5 xesh orqali uzatiladi, shuning uchun agar avatar ushbu elektron pochta manzilida topilgan bo'lsa, uning o'rniga zaxira stok tasviri ko'rsatiladi.

Comment.class.php - 2-bosqich umumiy statik funktsiyani tekshirish (& $ arr) (/ * / Bu usul ma'lumotlarni tekshirish uchun ishlatiladi / AJAX orqali o'tkaziladi. / / Bu ma'lumotlarning haqiqiy va to'ldirilganligiga qarab / rost / noto'g'ri qaytaradi. in / Massiv $ arr paremter sifatida uzatiladi / (yuqoridagi ampersandga e'tibor bering) / Ma'lumotlar kiritilishi yoki xato xabarlari haqiqiy. * / $ xatolar = massiv (); $ ma'lumotlar = massiv (); // filter_input funksiyasidan foydalanish PHP 5.2.0 da agar (! ($ Data ["email"] = filter_input (INPUT_POST, "email", FILTER_VALIDATE_EMAIL))) ($ errors ["email"] = "Iltimos, to'g'ri elektron pochta manzilini kiriting. ";) agar ( ! ($ ma'lumotlar [" url "] = filter_input (INPUT_POST," url ", FILTER_VALIDATE_URL))) (// URL maydoni noto'g'ri URL manziliga mos kelmasa $ url =" ";) // Maxsus filtrlardan foydalanish // qayta qo'ng'iroq qilish funktsiyasi: agar (! ($ ma'lumotlar ["tana"] = filter_input (INPUT_POST, "tana", FILTER_CALLBACK, massiv ("variantlar" => "Izoh :: matnni tasdiqlash"))) ($ xato s ["body"] = "Izohlar xatosi."; ) agar (! ($ ma'lumotlar ["ism"] = filter_input (INPUT_POST, "nom", FILTER_CALLBACK, massiv ("options" => "Izoh :: validate_text"))) ($ xatolar ["nom"] = " Nom xatosi. ";) Agar (! Bo'sh ($ xatolar)) (// Agar xatolar bo'lsa, $ arr massiviga $ xatolar yozing: $ arr = $ xatolar; return false;) foreach ($ ma'lumot $ k = sifatida. > $ v) ($ arr [$ k] = mysql_real_escape_string ($ v);) // Harflar kichik harflar bilan yozilganligiga ishonch hosil qiling // (to'g'ri Gravatar xesh uchun): $ arr ["email"] = strtolower (kesish ( $ arr [ "elektron pochta"])); haqiqatni qaytarish; )

validate () yuqorida tavsiflangan tarzda statik sifatida aniqlanadi. Bu shuni anglatadiki, uni o'sha sinf ob'ektini yaratmasdan turib, to'g'ridan-to'g'ri Comment :: validate () sifatida chaqirish mumkin. Bu usul AJAX orqali yuborilgan kiritishni tasdiqlamaydi.

Bu usul PHP 5.2.0 da mavjud bo'lgan yangi filtr funksiyalaridan foydalanadi. Bu bizga skriptga yuborilgan har qanday kirishni osongina tekshirish va filtrlash imkonini beradi. Misol uchun filter_input (INPUT_POST, "URL", FILTER_VALIDATE_URL) biz tekshirayotganimizni bildiradi $ _POST ["url"] haqiqiy URL. Agar shunday bo'lsa, u holda funktsiya o'zgaruvchining qiymatini qaytaradi, aks holda qaytarmalar noto'g'ri.

Bu juda foydali, chunki hozirgacha biz ma'lumotlarni tekshirish uchun o'zimizning oddiy iboralarimizdan foydalanishimiz kerak edi. Bundan tashqari, yana bir afzallik shundaki, bu ma'lumotlar har qanday maxsus o'zgarishlar konfiguratsiyasi (masalan, sehrli tirnoq) ustidan olinadi.

Shuningdek, bizda 31 va 37-qatorlarda ko'rsatilganidek, ma'lumotlarning yanada kengaytirilgan modifikatsiyalarini qo'llaydigan maxsus funktsiyani belgilash imkoniyati mavjud.

Comment.class.php - 3-bosqich xususiy statik funktsiya validate_text ($ str) (/ * / Bu usul FILTER_CALLBACK * / if (mb_strlen ($ str, "utf8"), "va hokazo ..) sifatida ichki ishlatiladi va o'zgartiradi // Yangi qatorlar
teglar: $ str = nl2br (htmlspecialchars ($ str)); // Qolgan yangi qatorlarni olib tashlang $ str = str_replace (massiv (chr (10), chr (13)), "", $ str); $ str qaytish; )

Oxirgi usul - validate_text, biz uni qayta qo'ng'iroq qilish funktsiyasi sifatida qabul qilamiz. U barcha HTML maxsus belgilaridan qochadi va ularni XSS hujumlaridan samarali tarzda oldini oladi. Shuningdek, u belgilar qatorlarini bilan almashtiradi
chiziqlar.

Submit.php / * / Bu massiv yo bilan to'ldiriladi / Skriptga yuborilgan ma'lumotlar yoki / Xato xabarlari: / * / $ arr = massiv (); $ validates = Sharh :: validate ($ arr); agar ($ tasdiqlansa) (/ * Hammasi yaxshi boʻlsa, uni maʼlumotlar bazasiga kiriting: * / mysql_query ("INSERT INTO comments (nom, url, email, body) VALUES (" ". $ arr [" name "]." " ," ". $ arr [" url "]." "," ". $ arr [" email "]." "," ". $ arr [" tana "]." ")"); $ arr [" dt" ] = sana ("r", vaqt ()); $ arr ["id"] = mysql_insert_id (); / * / $ arr so'rovidagi ma'lumotlar, / lekin o'chirilmagan matn, / shuning uchun biz hamma uchun chiziqli chiziqdan foydalanamiz / massiv elementlari: / * / $ arr = array_map ("chiziqlar", $ arr); $ insertedComment = yangi izoh ($ arr); / * Chiqish belgisi * / echo json_encode (massiv ("status" => 1, "html") => $ insertedComment-> belgilash ()));) boshqa (/ * Xato xabarlarini chop etish * / echo "(" status ": 0," xatolar ":". json_encode ($ arr). ")";)

submit.php sharh ma'lumotlarini AJAX so'rovi sifatida qabul qiladi. U uni tasdiqlaydi va JSON ob'ektini, muvaffaqiyatli chiqarilgan XHTML belgilarini yoki xato xabarlari ro'yxatini chiqaradi. JQuery xato xabarlarini ko'rsatish yoki sahifa belgilash sharhini qo'shishni aniqlash uchun xususiyat holatidan foydalanadi.

Quyida ikkita misolni ko'rishingiz mumkin.