Beləliklə, biz WordPress-də ikinci həftəlik dərslərimiz üçün. Keçmişdə sonsuz bir sürüşmə WP saytını və səhifə flip pluginini necə yaratmağı öyrəndik. Bu gün xüsusi yazı növləri və məlumatları necə yükləmək barədə bir az daha ətraflı məlumat alacağıq.


Bu xüsusiyyət saytınızda həqiqətən vacibdir, çünki sizə tövsiyə edən insanları göstərməyə imkan verir. Testimonials, zəhmli olduğunun böyük bir sosial sübutudur. Buna nail olmaq üçün mürəkkəb plaginlər və ya bir çox koda ehtiyacınız yoxdur, çünki bir neçə sənədlə gördüyünüz kimi ifadələriniz üçün seksual təqdimat yarada bilərsiniz.

Gəlin bundan sonra başlayaq!

Zip & Yüklemek

Bunu yoxlamaq üçün tələsirsinizsə, yükləyə və quraşdıra bilərsiniz.

Bundan sonra bir neçə məlumat əlavə etməlisiniz, tablosunda görə biləcəyiniz yeni ifadələrdən istifadə edərək bir neçə ifadəni əlavə etməklə:

siyahı-ifadələr

Sonra yükləmək üçün əsas şifrə istifadə edə bilərsiniz:

[ifadələr rand = 0 max = 5]

Bu kodu əlavə etdikdə səhifənizdə belə bir şey görərsiniz:

əsas şəhadətnamələr

İndi bunu necə yaratmağı və araşdırmağı görəcəyik (daha çox funksiya əlavə etmək və görünüşü dəyişdirməklə).

Əsaslar

Daha əvvəl dediyimiz kimi, baş metadata əlavə etməlisiniz, plugin faylını yaratmalı və skriptlərinizə zəng etməlisiniz. Uzun hekayə qısa, plaginizin adı ilə wp-content / pluginləriniz altında yeni bir qovluq yaradacaqsınız, sonra əsas qovluq faylı olacağınız qovluqla eyni adda bir fayl yaradacaqsınız.

Bu kopyanı yapışdırıb aşağıdakı kimi qoyun:

<?php
/ *
Plugin Adı: Testimonials
Təsvir: Müştərinin ifadələrini göstərin.
Versiya: 1.0
Müəllif: Veb Gəlir Blogu
Lisenziya: GPL2
* /

// skript və üslubları enqueueing
funksiya plugin_scriptts () {
wp_enqueue_script (‘jquery’);
wp_enqueue_script (‘flexslider’, plugins_url (‘js / jquery.flexslider-min.js’, __FILE__), serial (‘jquery’), ‘2.2’, yalan);
wp_enqueue_script (‘ifadələr’, plugins_url (‘js / testimonials.js’, __FILE__), serial (‘jquery’), ‘1.0’, yalan);
wp_enqueue_style (‘flexsliderCSS’, plugins_url (‘css / flexslider.css’, __FILE__), saxta, ‘2.2’, ‘hamısı’);
wp_enqueue_style (‘testimonialsCSS’, plugins_url (‘css / testimonials.css’, __FILE__), saxta, ‘1.0’, ‘hamısı’);
}
add_action ("wp_enqueue_scripts","plugin_scriptts");

Budur, etdiyimiz işlər:

  • WP-yə plaginimizin adını, müəllifini, nə etdiyini izah etmək
  • Normal skriptləri (jQuery kimi) və xüsusi skriptləri (flexslider kimi) və üslub cədvəllərini daxil etdiyimiz bir funksiya yaratmaq
  • Skriptlər funksiyasını standart skript çağırışında yükləmək üçün WP-yə müraciət edərək, həqiqətən səhifələrə yüklənəcəklər

Hamısı olduqca əladır, ancaq faylları / js və / css altında yaratmağı unutmayın. Onları sadəcə demo məzmunumuza yükləyə bilərsiniz, buna görə də fleksslider sənədlərini tapmaq üçün çox şey qazmaq lazım deyil.

İndi gülməli hissəyə başlaya biləcəyimiz hər şey var.

Xüsusi Poçt Növü

Varsayılan olaraq, WordPress-də 2 ümumi yazı növü, səhifələr və yazılar var. Ancaq bunun içərisində bir çox daxili yazı tipi var (əlavələr kimi), buna görə “yazı növü” tərifi belədir: Saxlamağınız lazım olan hər bir məlumat növü.

Plaginimiz yeni bir funksionallıq yarada biləcəyi üçün WP-nin saxlaya biləcəyi yer yoxdur, buna görə də onu yaratmalıyıq. Kiçik çəyirtkədən qorxma, bu çox sadədir, bu kodu istifadə edə bilərsiniz:

// yazı tipini yaratmaq üçün qara sehr
funksiya create_post_type () {
Qeyd_post_type (
‘ifadələr’, // yeni yazı növü
serial (
‘etiketlər’ => serial (
‘adı’ => __ (‘Testimonials’),
‘təkbaşına_name’ => __ (‘Testimonial’)
),
‘ictimai’ => həqiqi, / * Yazı növü xalq istifadəsi üçün nəzərdə tutulub. Buraya ön hissə və wp-admin daxildir. * /
‘dəstəkləyir’ => array (‘başlıq’, ‘redaktor’, ‘eskiz’, ‘custom_fields’),
‘iyerarxik’ => yalan
)
);
}

Budur, WP-yə “Hey Buddy, bu cür məlumatları saxlamalıyıq, zəhmət olmasa qəbul etməyə hazır olun” demək üçün yalnız qeydiyyat_post_type () funksiyasından istifadə edirik..

Biz də ona deyirik ki, bu cür məlumatlar “ifadələr” adlanır, ictimaiyyət üçün açıq olmalıdır (buna görə tablosuna həqiqətən yeni bir menyu elementi yaradır), bizə lazım olan sahələr və iyerarxik olduqda ya yox (valideyn və uşaq səhifələrindəki səhifələr kimi).

Sonra hər dəfə WordPress yüklədiyimiz zaman zəng etməliyik. Bu çəngəl bunu edəcək:

add_action (‘init’, ‘create_post_type’);

Xüsusi Sahələr

İndi xüsusi yazı tipimizdə başlıq (şəxsin adı), məzmun (şəxsin ifadəsi), bir şəkil (özəlləşdirilmiş şəkil) var, amma bir keçid yoxdur, çünki şəxs sizin haqqınızda danışmaq üçün xoşdursa, heç olmasa əlaqələndirməlisiniz. onların saytı, sağ?

Bunu adi xüsusi sahələrlə edə bilərdik, amma istifadəçinin sahənin adını yazmasına ehtiyac duymadığı və bəzi təsdiqləmə qaydalarını əlavə edə biləcəyiniz “qapalı” sahənin olması daha yaxşıdır..

Əvvəlcə yeni bir metaboks yaratmalıyıq ki, bu yazı panelinizdə olan gözəl panellərdir, hər kiçik panel metaboksdur. Bu funksiya onu yaradacaq və çağıracaq:

// URL meta qutusu sahəsini əlavə edir
funksiya add_custom_metabox () {
add_meta_box (‘xüsusi-metabox’, __ (‘Bağlantı’), ‘url_custom_metabox’, ‘ifadələr’, ‘yan’, ‘aşağı’);
}
add_action (‘admin_init’, ‘add_custom_metabox’);

Add_meta_box () funksiyası bu parametrləri tələb edir:

  1. ID – bunun üçün unikal identifikator. Buradakı “unicorn-yemiş göy qurşağı” və ya “dəlil bağlantısı” kimi unikal bir şeydən istifadə edə bilərsiniz. İçəridə istifadə edilə bilən hər şey
  2. Başlıq – İstifadəçi üçün nə göstəriləcək? Burada __ () funksiyasından istifadə etmək vacibdir, xarici dillərdən olan istifadəçilərə plagininizi .po faylları ilə tərcümə etməyə imkan verən funksiyadır (plugin fayllarını redaktə etmədən)
  3. Çağırış – Metaboksun əsl məzmununa sahib olduğunuz funksiyadır
  4. Yazı növü – Bizim vəziyyətimizdə bunun yalnız ifadələr üçün görünməsini istəyirik
  5. Kontekst – onu göstərmək istədiyiniz səhifədə
  6. Prioritet – eyni mövqedəki digər maddələrdən əvvəl və ya onlardan sonra olmalıdırsa

İndi adlandırdığımız üçün url_custom_metabox () funksiyasını yaratmalıyıq.

// admin sahəsi üçün HTML
funksiya url_custom_metabox () {
qlobal $ poçt;
$ urllink = get_post_meta ($ yazı->ID, ‘urllink’, doğrudur);

// təsdiqləyən!
əgər (! preg_match ( "/ http (s?): ///", $ urllink) && $ urllink! = "") {
$ səhvləri = "Bu URL etibarsızdır";
$ urllink = "http: //";
}

// çıxış invlid url mesajı və giriş sahəsinə http: // əlavə edin
if (isset ($ səhvlər)) {echo $ səhvləri; }
?>

URL:

<?php
}

Ok, indi bunu sadə ingilis dilinə tərcümə edirəm:

  • Qlobal dəyişən $ post deyilir, buna görə mövcud maddənin POSTİD olduğunu bilə bilərik
  • URL üçün cari dəyəri yükləyirik
  • İstifadəçinin daxil etdiyi dəyər doğrudursa təsdiq edirik. Ən azı bir “http” və ya “https” baş verərsə, dəyər tamamdır, əks təqdirdə etibarlıdır və standart dəyərdən istifadə etməliyik
  • Səhvləri göstəririk, əgər varsa
  • İndi PHP-də olduğumuz kimi giriş sahəsinə standart dəyəri əlavə edərək həqiqi HTML-yə başlayırıq

Bu nöqtədən sonra istifadəçi tərəfindən göndərilənləri həqiqətən qənaət etməliyik. “Save_post” çəngəlindən istifadə edəcəyik, buna görə hər dəfə WordPress yazını saxladıqda bu funksiyanı çağıracaq:

// xüsusi sahə məlumatlarını saxlayır
save_custom_url funksiyası ($ post_id) {
qlobal $ poçt;

əgər (isset ($ _ POST [‘siteurl’]))) {
yeniləmə_post_meta ($ post->ID, ‘urllink’, $ _POST [‘siteurl’]);
}
}
add_action (‘save_post’, ‘save_custom_url’);

Burada sadəcə “sitelink” adlı sahə adı olan hər hansı bir poçt məlumatının olub olmadığını yoxlayırıq. Siten varsa, saxlasın.

Hər şey qaydasında olduqdan sonra, yeni ifadələr səhifənizin necə olacağını göstərin:

yeni-şəhadət

Xüsusi məlumatlarımızı yükləyirik

İndi maddələrimizi həqiqətən yükləməliyik və get_posts () funksiyasından istifadə edəcəyik, əsasən, sadəcə sadə məlumatlara sahib olduğumuz üçün lazımlı bir WP döngəsinə ehtiyac duymuruq (bu çox DB çağırışına əlavə edər və həqiqətən bağışlamırıq ehtiyac yoxdur).

Beləliklə, əvvəlcə saytımızın linkini əldə etmək üçün bir funksiya yaradaq.

// yazı üçün URL qayıt
funksiya get_url ($ post) {
$ urllink = get_post_meta ($ yazı->ID, ‘urllink’, doğrudur);

$ urllink qayıt;
}

İndi qısa şifrə funksiyasına başlaya bilərik. Qısamüddətli məlumatların defolt edilməsi və doğrulanmasının sadə bir yolu, döngə üçün atributları bir sıra şəklində yaratmaqdır, buna görə ehtiyac duyduğumuz kimi yeni maddələr əlavə edə bilərik:

// ifadələri göstərmək üçün qısa kodun qeydiyyatı
funksiya load_testimonials ($ a) {

$ args = array (
"post_tip" => "ifadələr"
);

əgər (isset ($ a [‘rand’]) && $ a [‘rand’] == doğru) {
$ args [‘orderby’] = ‘rand’;
}
əgər (isset ($ a [‘max’])) {
$ args [‘posts_per_page’] = (int) $ a [‘max’];
}
// bütün ifadələrin alınması
$ posts = get_posts ($ args);

// HTML Çıxış
}
add_shortcode ("ifadələr","yükləmə_testimonialları");

Gördüyünüz kimi qısamüddətli atributlarımız yüklənib təsdiq edildikdə $ args massivinə keçib, WordPress-in ehtiyac duyduğu formatda olduğundan onlardan istifadə edərək yazıları yükləyə bilərik..

İndi flexslider’in standart quruluşunu izləyərək orada bir HTML kodu əlavə etməliyik. Budur, necə görünəcək:

echo ”;
echo

    ‘;

    precach ($ post kimi $ mesaj) {
    // baş şəkil alır
    $ url_thumb = wp_get_attachment_thumb_url (get_post_thumbnail_id ($ post->Şəxsiyyət vəsiqəsi));
    $ link = get_url ($ post);
    echo

  • ‘;
    əgər (! boş ($ url_thumb)) {echo ‘‘; }
    echo

    ‘. $ göndər->post_title. ‘

    ‘;
    əgər (! boş ($ post)->post_content)) {echo ‘

    ‘. $ göndər->post_content. ‘
    ‘; }
    əgər (! boş ($ link)) {echo ‘Saytı ziyarət edin

    ‘; }
    echo

  • ‘;
    }

    echo

‘;
echo ”;

Gözləyin, amma niyə PHP funksiyasının içərisində HTML kodunu yaratmalıyıq? Məzmunu yalnız istifadəçi tərkib əlavə etdikdə şərti olaraq yükləyə biləcəyimizə görə boş HTML etiketlərinə sahib olmayacaqsınız, sadəcə susmağı gözləyir.

Yan çubuğun nə olduğu haqqında?

Əksər insanlar yalnız paneldə ifadələr göstərmək istəyirlər və bu plugin həqiqətən yaxşı işləmir, çünki mətn vidjetləri qısa kodları işləmir. Bunun üçün sadə bir həll yolu var, bunu kodunuza əlavə edin:

add_filter (‘widget_text’, ‘do_shortcode’);

Sonrakı?

Beləliklə, bu dərsdən zövq almısınız? Testimonial shortcode üçün bir seçim olaraq nə əlavə edərdiniz? Gələcək ismarıclarınız üçün fikirləriniz varmı? Şərh bölməsindən istifadə edərək bizə bildirin!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me