WordPress ta'limi: Testimonials plaginini qanday yaratish mumkin

Maqola muallifi:
  • WordPress
  • Yangilandi: Yanvar 12, 2013

Shunday qilib, biz WordPress-dagi ikkinchi haftalik o'quvchimiz uchun bu erda. Biz qanday yaratishni bilib oldik cheksiz o'tish WP sayti va sahifani tiklash uchun plagin oldin. Bugun biz maxsus xabar turlari va ularning ma'lumotlarini qanday yuklash haqida biroz ko'proq bilib olamiz.

Bu xususiyat saytingizda juda muhimdir, chunki u sizni tavsiya qiladigan odamlarni ko'rsatishga imkon beradi. Izohlar sizning ajoyibligingizning ajoyib ijtimoiy tasdig'idir. Va bunga erishish uchun murakkab plaginlarni yoki ko'p kodni talab qilmaysiz, chunki siz bir nechta fayllarni ko'rasiz, sizning tanishlaringiz uchun amaliyotni taqdim etishingiz mumkin.

Keling, boshlang!

Zip va o'rnatish

Agar buni tekshirish uchun shoshilinch bo'lsangiz, buni qilishingiz mumkin download va uni o'rnating.

Keyin ba'zi ma'lumotlarni qo'shishingiz kerak, yangi sertifikatlardan foydalanib, bir nechta fikrlar qo'shib, sizning boshqaruv panelingizda ko'rishingiz mumkin:

ro'yxatga olish hujjatlari

Keyin quyidagi qisqa kodni ishlatishingiz mumkin:

[testimonials rand = 0 max = 5]

Ushbu kodni qo'shganingizda, sizning sahifangizda shunday bir narsani ko'rasiz:

asosiy tushunchalar

Endi biz buni qanday qilib yaratishni va qanday o'rganishni ko'rib chiqamiz (qo'shimcha funktsiyalarni qo'shish va ko'rinishni o'zgartirish).

asoslari

Yuqorida aytib o'tganimizdek, siz qo'shishingiz kerak header metadata, plagin faylini yarating va skriptlaringizni chaqiring. Uzoq qisqacha hikoyangiz sizning plagin nomingiz bilan wp-kontent / plaginlari ostidagi yangi papkani yaratadi va keyin siz asosiy plagin faylingiz bo'lishi uchun papka bilan bir xil nomdagi faylni yaratasiz.

Ushbu nusxa ko'chirish va yapıştırmayı quyidagi kabi qildingiz:

<? php / * Plugin Name: Testimonials Tavsif: mijozlar murojaatlarini ko'rsatish. Versiya: 1.0 Muallif: Web-daromad Blog Litsenziyasi: GPL2 * / // enquueing skriptlari va uslublari funktsiyasi plugin_scripts () {wp_enqueue_script ('jquery'); wp_enqueue_script ('flexslider', plugins_url ('js / jquery.flexslider-min.js', __FILE__), qator ('jquery'), '2.2', noto'g'ri); wp_enqueue_script ("testimonials", plugins_url ('js / testimonials.js', __FILE__), qator ('jquery'), '1.0', noto'g'ri); wp_enqueue_style ('flexsliderCSS', plugins_url ('css / flexslider.css', __FILE__), noto'g'ri, '2.2', 'barchasi'); wp_enqueue_style ("testimonialsCSS", plugins_url ('CSS / testimonials.css', __FILE__), noto'g'ri, '1.0', 'barchasi'); } add_action ("wp_enqueue_scripts", "plugin_scripts");

Mana nima qilmoqdamiz:

  • WPga plaginning ismini, muallifini, nima qilganini aytib bering
  • Funktsiyani yaratish, muntazam skriptlarni (jQuery kabi) va maxsus buyruqlarni (moslashuvchan moslama kabi) va uslub sahifalarini
  • Buyruq fayllarini yuklash uchun WP-ga gapirish default skriptlarda ishlaydi, shuning uchun ular aslida sahifalarga o'rnatiladi

Bu juda yaxshi, lekin aslida / js va / css ostida fayllarni yaratishni unutmang. Siz ularni demo-kontentdan yuklab olishingiz mumkin, shuning uchun sizga moslashuvchan fayllarni topish uchun juda ko'p narsa qazishga hojat yo'q.

Endi bizda kulgili qismi boshlay oladigan barcha asosiy narsalar mavjud.

Maxsus xabar turi

Odatiy bo'lib, WordPress 2 umumiy post turlari, sahifalar va xabarlarga ega. Lekin, shuningdek, ichki post turlari (qo'shimchalar kabi) juda ko'pdir, shuning uchun "post turi" ta'rifi quyidagilardir: Siz saqlash uchun kerak bo'lgan har qanday ma'lumot.

Bizning plagin yangi funktsiyani yaratadi, chunki WP uni saqlash uchun o'rnatilgan joyga ega emas, shuning uchun uni yaratishimiz kerak. Kichik chigirtka qo'rqmang, juda oddiy, ushbu kodni ishlatishingiz mumkin:

// post turi funktsiyasini yaratish uchun qora sehrli yaratish create_post_type () {register_post_type ('testimonials', // yangi xabar turi array ('labels' => array ('name' => __ ('Testimonials'), 'singular_name' => __ ('Testimonial')), 'public' => rost, / * Post turi umumiy foydalanish uchun mo'ljallangan, bu oldingi va wp-adminda mavjud. * / 'Supports' => array ('title ',' editor ',' thumbnail ',' custom_fields '),' ierarxik '=> noto'g'ri)); }

Biz WP-ga "Hey Buddy, biz bunday ma'lumotni saqlashimiz kerak, iltimos uni qabul qilishga tayyor bo'ling" deb aytib berish uchun register_post_type () funktsiyasidan foydalanamiz.

Shuningdek, unga bunday ma'lumotlarning "testimonials" deb nomlanishini, uni jamoatchilik bilan tanishish uchun foydalanish mumkinligini (ya'ni, siz uchun paneldagi yangi menyu punktini yaratish), bizga kerak bo'lgan maydonlarni va ierarxik bo'lsa yoki (ota-ona va bola sahifalari bo'lgan sahifalar kabi).

So'ngra biz WordPressni har safar yuklashda uni chaqirishimiz kerak. Ushbu kanca buni amalga oshiradi:

add_action ("init", "create_post_type");

Maxsus maydonlar

Endi bizning maxsus xabarlarimiz nomi (shaxsning nomi), kontent (shaxsning guvohligi), rasm (taniqli rasm) mavjud bo'lsa-da, u havolani yo'qotadi, chunki u siz haqingizda gapirishga etarli darajada yaxshi bo'lsa, hech bo'lmaganda ularning saytlari, to'g'rimi?

Biz buni odatiy odatiy maydonlar bilan amalga oshirishimiz mumkin, ammo foydalanuvchiga maydon nomini yozishni talab etmaydigan, shuningdek, ba'zi tekshirish qoidalarini qo'shishingiz mumkin bo'lgan "yopiq" maydonchaga ega bo'lish yaxshiroqdir.

Avvalo, biz sizga yangi tahrir qilish metodini yaratishingiz kerak, bu sizning post tahrirlash sohasidagi sizning yaxshi panellar, har bir kichik panel metabox. Bu funksiya uni yaratadi va uni chaqiradi:

// URL meta qutisi maydonini qo'shish funktsiyasi add_custom_metabox () {add_meta_box ("metodik-metabox", __ ('Link'), 'url_custom_metabox', 'testimonials', 'yonma', 'past'); } add_action ("admin_init", "add_custom_metabox");

Add_meta_box () funktsiyasi quyidagi parametrlarni talab qiladi:

  1. ID - bu noyob identifikator. Siz "unicorn-eating-rainbow" yoki "testimonial-link" singari bu erda noyob narsa foydalanishingiz mumkin. Ichki sifatida ishlatilishi mumkin bo'lgan har qanday narsa
  2. Sarlavha - foydalanuvchi uchun nima ko'rsatiladi? Bu erda __ () funktsiyasidan foydalanish juda muhim, foydalanuvchilarning xorijiy tillardan sizning plaginingizni .po fayllaringizni (plugin fayllarini tahrir qilmasdan)
  3. Callback - metaboxning haqiqiy mazmuni bo'lgan funksiya
  4. Post turi - Bizning holatlarimizda biz faqat referallar uchun ko'rinadigan bo'lishini istaymiz
  5. Kontekst - sahifani qaerda ko'rsatishni istaysiz
  6. Birinchi o'ringa - Agar u boshqa lavhalar oldida yoki undan keyin bo'lishi kerak bo'lsa

Endi url_custom_metabox () funktsiyasini yaratishimiz kerak, chunki biz uni chaqirdik.

// administrator maydoni uchun HTML url_custom_metabox () {global $ post; $ urllink = get_post_meta ($ post-> ID, 'urllink', haqiqiy); // tasdiqlash! agar (! preg_match ("/ http (s?): ///", $ urllink) && $ urllink! = "") {$ errors = "Bu URL haqiqiy emas"; $ urllink = "http: //"; } // invlid url-xabarni chiqaring va http: // -ni kiritish maydoniga qo'shing, agar (isset ($ error)) {echo $ error; }?> <p> <label for = "siteurl"> URL: <br /> <input id = "siteurl" size = "37" name = "siteurl" value = "<? php if (isset ($ urllink)) ) {echo $ urllink;}?> "/> </label> </p> <? php}

OK, endi buni oddiy ingliz tiliga tarjima qilaman:

  • Global o'zgaruvchining $ posti chaqiriladi, shuning uchun joriy maqolaning qaysi POSTID ekanligini bilishimiz mumkin
  • URL uchun joriy qiymatni yuklaymiz
  • Agar foydalanuvchi kiritgan qiymat haqiqiy bo'lsa. Agar kamida bitta "http" yoki "https" paydo bo'lsa, qiymat OK, aks holda u joriy va biz asl qiymati
  • Keyin xatolarni ko'rsatamiz
  • Keling, biz asl HTMLni boshlaymiz, PHPda biz kiritgan uskuna asl qiymatini qo'shamiz

Shundan keyin biz foydalanuvchiga yuborgan narsalarni aslida saqlab qolishimiz kerak. Biz "save_post" kookidan foydalanamiz, shuning uchun WordPress har safar ushbu funksiyani chaqiradigan xabarni saqlaydi:

// maxsus maydon ma'lumotlarini saqlaydi save_custom_url ($ post_id) {global $ post; agar (isset ($ _ POST ["siteurl"])) {update_post_meta ($ post-> ID, 'urllink', $ _POST ['siteurl']); }} add_action ("save_post", "save_custom_url");

Bu yerda biz "domen nomi" deb ataladigan har qanday post ma'lumoti mavjudligini tekshiramiz. Agar sayt manzili mavjud bo'lsa, uni saqlaylik.

Har bir narsa sodir bo'lgach, yangi testimonial sahifangiz qanday ko'rinishini beradi:

yangi guvohnoma

Maxsus ma'lumotlarimizni yuklash

Endi biz narsalarni aslida yuklashimiz kerak, va biz get_posts () funktsiyasidan foydalanamiz, chunki biz oddiy ma'lumotlarga egamiz, shuning uchun tegishli WP loopi kerak emas Bunga ehtiyoj bor.

Shunday ekan, keling avval bizning veb-saytimiz linkini olish funksiyasini yarataylik, agar mavjud bo'lsa.

// post funksiyasi uchun URLni qaytarib olish get_url ($ post) {$ urllink = get_post_meta ($ post-> ID, 'urllink', rost); $ urllinkni qaytarish; }

Endi qisqa kod funksiyasini ishga tushirishimiz mumkin. Qisqa kod ma'lumotlarini standartlashtirish va tasdiqlashning oddiy usuli, loop uchun qatorlar uchun xususiyatlar yaratadi, shuning uchun biz ularga kerak bo'lgan yangi narsalarni qo'shishimiz mumkin:

// test_onestial funktsiyasini ko'rsatish uchun shortcode-ni ro'yxatdan o'tkazish load_testimonials ($ a) {$ args = array ("post_type" => "guvohliklar"); if (isset ($ a ['rand']) && $ a ['rand'] == true) {$ args ['orderby'] = 'rand'; } if (isset ($ a ['max'])) {$ args ['posts_per_page'] = (int) $ a ['max']; } // barcha guvohliklarni olish $ post = get_posts ($ args); // HTML OUTPUT} add_shortcode ("Testimonials", "load_testimonials");

Ko'rib turganimizdek, biz WordPress-ga kerakli formatda tekshirilganda, ularni yuklagan kalit kodlari va $ args qatoriga o'tkazdik, shuning uchun biz xabarlarni ularni ishlatishimiz mumkin.

Endi flexslider-ning standart strukturasidan keyin ba'zi HTML-kodlarni kiritishimiz kerak. Mana bu qanday ko'rinishga ega:

echo '<div>'; echo '<ul>'; foreach ($ post kabi xabarlar) {// bosh sahifani olish $ url_thumb = wp_get_attachment_thumb_url (get_post_thumbnail_id ($ post-> ID)); $ link = get_url ($ post); echo '<li>'; agar (! empty ($ url_thumb)) {echo '<img src = "' $ url_thumb. '" />'; } echo '<h2>'. $ post-> post_title. '</ h2>'; agar (! empty ($ post-> post_content)) {echo '<p>' $ post-> post_content. <br /> '; } if (! empty ($ link)) {echo '<a href="'.$link.'"> Saytga kirish </a> </ p>'; } echo '</ li>'; } echo '</ ul>'; echo '</ div>';

Kuting, lekin nima uchun PHP funktsiyasi ichida HTML kodini yaratamiz? Buning sababi shundaki, kontentni kontentni faqat foydalanuvchi kontentni qo'shgan holda yuklashingiz mumkin, shuning uchun bo'sh HTML teglaringiz bo'lmasa, tartibni buzish uchun kutib turasiz.

Yon paneli haqida nima deyish mumkin?

Aksariyat odamlar chekka panelda ko'rsatuvlarni ko'rsatishni xohlashadi va bu plagin juda yaxshi ishlamaydi, chunki matnli vidjetlar qisqa kodlarni ishlamaydi. Buning uchun oddiy echim bor, buning uchun kodingizni qo'shing:

add_filter ('widget_text', 'do_shortcode');

Keyingisi nima?

Shunday qilib, siz ushbu treningdan rosa olasizmi? Testimonial qisqacha kodingiz uchun qanday variantni qo'shasiz? Kelajakdagi postlar haqida biron-bir fikringiz bormi? Fikrlar bo'limidan foydalanib bizga xabar bering!

Rochesterda Oliveira haqida

Men Itajubaning (MG) braziliyalik veb-uslubchisi va tadbirkori bo'ldim. Men qorong'u mavzular haqida yozishni yaxshi ko'raman va ba'zi ajoyib narsalarni qilaman.

»I ¿