Tutorial WordPress: Jinsi ya Kujenga Testimonial Plugin

Kifungu kilichoandikwa na:
  • WordPress
  • Imeongezwa: Agosti 12, 2013

Kwa hiyo, hapa sisi ni kwa mafunzo yetu ya pili ya kila wiki kwenye WordPress. Tumejifunza jinsi ya kuunda haipatikani tovuti ya kurasa ya WP na Flip ya ukurasa-flip zamani. Leo tutajifunza zaidi kidogo kuhusu aina za post desturi, na jinsi ya kupakia data zao.

Kipengele hiki ni muhimu sana kwenye tovuti yako, kwani inakuwezesha kuonyesha watu kukupendekeza. Ushuhuda ni ushahidi mkubwa wa kijamii wa uovu wako. Na huna haja ya vipengele vingi au kanuni nyingi ili kufikia hili, kama utakavyoona na faili kadhaa unaweza kuanzisha ushuhuda wa sexy kwa ushuhuda wako.

Hebu tuanze basi!

Zip & Weka

Ikiwa una haraka ili uangalie hili, unaweza download na kufunga hiyo.

Utahitaji kuongeza data kisha, kwa kuongeza ushuhuda wachache kutumia ushuhuda mpya wa bidhaa unaweza kuona kwenye dashibodi yako:

orodha-washuhuda

Kisha unaweza kutumia shortcode ya msingi kupakia kwamba:

[ushuhuda rand = 0 max = 5]

Ukiongeza code hiyo utaona kitu kama hiki kwenye ukurasa wako:

ushuhuda kuu

Sasa tutaona jinsi ya kuunda na kuchunguza hili (kwa kuongeza kazi zaidi na kubadilisha uonekano).

Misingi

Kama tulivyosema hapo awali, utahitaji kuongeza kichwa cha metadata, tengeneza faili ya programu ya pembejeo na piga maandiko yako. Muda mrefu wa hadithi, utaunda folda mpya chini ya wp-content / plugins yako na jina la Plugin yako, kisha uunda faili yenye jina moja kama folda kuwa faili yako kuu ya programu.

Mara baada ya kufanya hivyo nakala na ushirike kama ifuatavyo:

<? php / * Jina la Plugin: Ushuhuda Maelezo: Onyesha ushuhuda wa wateja. Toleo: 1.0 Mwandishi: License Blog ya Mapato ya Mtandao: GPL2 * / // kukataa scripts na mitindo kazi plugin_scripts () {wp_enqueue_script ('jquery'); wp_enqueue_script ('flexslider', plugins_url ('js / jquery.flexslider-min.js', __FILE__), safu ('jquery'), '2.2', uongo); wp_enqueue_script ('testimonials', plugins_url ('js / testimonials.js', __FILE__), safu ('jQuery'), '1.0', uongo); wp_enqueue_style ('flexsliderCSS', plugins_url ('css / flexslider.css', __FILE__), uongo, '2.2', 'wote'); wp_enqueue_style ('testimonialsCSS', plugins_url ('css / testimonials.css', __FILE__), uongo, '1.0', 'wote'); } add_action ("wp_enqueue_scripts", "plugin_scripts");

Hapa ndilo tunachofanya:

  • Kuelezea WP nini jina la Plugin yetu, mwandishi, kinachofanya nini
  • Kuunda kazi, ambako tunaingiza maandiko ya kawaida (kama jQuery) na maandiko ya desturi (kama vile mabadiliko), na Stylesheets
  • Kuiambia WP kupakia scripts kazi katika script default default wito, hivyo watakuwa kweli kubeba katika kurasa

Yote ni ya baridi, lakini usisahau kuunda files chini ya / js na / css. Unaweza tu kupakua kwenye maudhui ya demo yetu kwa hivyo huna haja ya kuchimba mengi ili kupata mafaili ya flexslider.

Sasa tuna mambo yote ya msingi mahali ambapo tunaweza kuanza sehemu ya funny.

Aina ya Post Post

Kwa default, WordPress ina aina ya post ya kawaida ya 2, kurasa na machapisho. Lakini pia ina aina nyingi za posta za ndani (kama viambatisho), hivyo ufafanuzi wa "aina ya post" ni: Kila aina ya data unayohitaji kuhifadhi.

Kama Plugin yetu itaunda utendaji mpya WP haina nafasi iliyojengeka kuhifadhiwa, hivyo tunahitaji kuunda hiyo. Usiogope mdogo mdogo, ni rahisi sana, unaweza kutumia code hii:

// uchawi mweusi kuunda kazi ya aina ya post create_post_type () {register_post_type ('testimonials', // aina mpya ya aina ya posta ('maandiko' => safu ('jina' => __ ('Testimonials'), 'singular_name' => __ ('Testimonial')), 'umma' => kweli, / * Aina ya posta inalenga matumizi ya umma.Hii inajumuisha mwisho wa mbele na katika wp-admin. * / 'Inasaidia' => safu ('title ',' mhariri ',' thumbnail ',' custom_fields '),' hierarchical '=> uongo)); }

Hapa tunatumia kazi ya register_post_type () kuwaambia WP "Hey Buddy, tunahitaji kuhifadhi data hii ya aina, tafadhali tupate tayari kuipata".

Tunamwambia pia kwamba aina hii ya data inaitwa "ushuhuda", inapaswa kuwa inapatikana kwa upatikanaji wa umma (hivyo kwa kweli kuunda kitu kipya cha menu katika dashibodi yako), mashamba tunayohitaji, na ikiwa ni hierarchical au si (kama kurasa ambazo tuna wazazi na kurasa za watoto).

Kisha tunahitaji kuiita kila wakati tunapopakia WordPress. Ndoano hii itafanya:

add_action ('init', 'create_post_type');

Mashamba ya Desturi

Sasa aina yetu ya post ya desturi ina kichwa (jina la mtu), yaliyomo (ushuhuda wa mtu), picha (inayoonyesha picha) lakini haifai kiungo, kwa kuwa ikiwa mtu huyo ni mzuri wa kuzungumza juu yako, unapaswa kuunganisha tovuti yao, sawa?

Tunaweza kufanya hivi na uwanja wa kawaida wa kawaida, lakini ni bora kuwa na uwanja "uliofungwa", ambapo mtumiaji haitaji kuchapa jina la uwanja, na pia mahali ambapo unaweza kuongeza sheria zingine za uthibitisho.

Kwanza kabisa tunahitaji kujenga metabox mpya, ambayo ni paneli nzuri zilizo na eneo lako la kuchapisha post, kila jopo ndogo ni metabox. Kazi hii itaunda na kuiita:

// kuongeza kipengee cha shamba la meta sanduku la URL add_custom_metabox () {add_meta_box ('desturi-metabox', __ ('Link'), 'url_custom_metabox', 'testimonials', 'side', 'low'); } add_action ('admin_init', 'add_custom_metabox');

Shughuli ya add_meta_box () inahitaji vigezo hivi:

  1. ID - Kitambulisho cha kipekee cha hilo. Unaweza kutumia kitu chochote cha kipekee hapa kama "upinde wa mvua ya nyati" au "ushuhuda-kiungo". Kitu chochote ambacho kinaweza kutumika ndani
  2. Kichwa - Nini itaonyeshwa kwa mtumiaji? Hapa ni muhimu kutumia kazi ya __ (), ni kazi ambayo inaruhusu watumiaji kutoka lugha za kigeni kutafsiri Plugin yako na faili za .po (bila kuhariri faili za Plugin)
  3. Callback - Kazi ambapo una maudhui halisi ya metabox
  4. Aina ya Chapisho - Kwa upande wetu tunataka ionekane tu kwa ushuhuda
  5. Muktadha - Ambapo katika ukurasa unataka kuonyesha
  6. Kipaumbele - Ikiwa ni lazima kabla ya vitu vingine vya nafasi sawa au baada yao

Sasa tunahitaji kuunda kazi ya url_custom_metabox (), tangu tumeiita.

// HTML kwa kazi ya eneo la admin url_custom_metabox () {chapisho la $ la kimataifa; $ urllink = get_post_meta ($ post-> ID, 'urllink', ni kweli); // kuhalalisha! ikiwa (! preg_match ("/ http (s?): ///", $ urllink) && $ urllink! = "") {$ makosa = "URL hii sio halali"; $ urllink = "http: //"; } // patoza ujumbe wa url unaoingiliana na kuongeza http: // kwenye uwanja wa pembejeo ikiwa (kipengee (makosa ya $)) {makosa ya $ $; }?> <p> <lebo ya = "siteurl"> URL: <br /> <id id ya uingizwaji "" siteurl "saizi =" 37 "jina =" siteurl "thamani =" <? php ikiwa (isset ($ urllink) ) {echo $ urllink;}?> "/> </label> </p> <? php}

Ok, sasa una tafsiri hii kwa Kiingereza wazi:

  • Mtazamo wa kimataifa wa $ unaitwa, hivyo tunaweza kujua ni POSTID ya kipengee cha sasa
  • Tunapakia thamani ya sasa kwa URL
  • Tunathibitisha Ikiwa thamani ambayo mtumiaji ameingizwa haifai. Ikiwa kuna angalau tukio la "http" au "https" thamani ni sawa, vinginevyo ni sahihi na tunahitaji kutumia thamani ya msingi
  • Kisha tunaonyesha makosa, ikiwa kuna yoyote
  • Sasa tunaanza HTML halisi, na kuongeza thamani ya msingi katika uwanja wa pembejeo kama tulivyopata kwenye PHP

Baada ya hatua hii tunahitaji kuokoa kile kinachotumwa na mtumiaji. Tutatumia ndoano "salama_kusafirisha", hivyo kila wakati WordPress itaokoa chapisho ititaja kazi hii:

// inaokoa kazi ya data ya desturi shamba save_custom_url ($ post_id) {kimataifa $ post; kama (isset ($ _ POST ['siteurl'])) {update_post_meta ($ post-> ID, 'urllink', $ _POST ['siteurl']); }} add_action ('save_post', 'save_custom_url');

Hapa tunaangalia tu kama kuna data yoyote ya post inayoitwa "sitelink" ambayo ni jina la uwanja wetu. Ikiwa kuna sitelink, hebu tuihifadhi.

Baada ya kila kitu kilipopo, hapa ndivyo ukurasa wako wa ushuhuda mpya utaonekana kama:

mpya-ushuhuda

Inapakia Data yetu ya Desturi

Sasa tunahitaji kwa kweli kupakia vitu vyetu, na tutatumia kazi za_to_posts (), hasa kwa sababu tuna data rahisi tu kwa hivyo hatuhitaji kitanzi sahihi cha WP (ambacho kinaongeza simu nyingi za DB na tunatupa kweli Tunahitaji).

Kwa hiyo, hebu kwanza tujenge kazi ili kupata kiungo cha tovuti yetu, ikiwa kuna.

URL kurudi kwa ajili ya kazi ya post kupata_url ($ post) {$ urllink = get_post_meta ($ post-> ID, 'urllink', kweli); kurudi $ urllink; }

Sasa, tunaweza kuanza kazi ya shortcode. Njia rahisi ya kubadilisha na kuthibitisha data shortcode ni kujenga sifa kwa kitanzi kama safu, hivyo tunaweza kuongeza vitu mpya kama tunahitaji yao, kama hii:

// kusajili njia fupi kuonyesha kazi ya ushuhuda wa ushuhuda ($ a) {$ args = safu ("post_type" => "ushuhuda"); ikiwa (isset ($ a ['rand']) && $ a ['rand'] = = kweli) {$ args ['orderby'] = 'rand'; } ikiwa (isset ($ a ['max']) {$ args ['posts_per_page'] = (int) $ a ['max']; } // kupata ushuhuda wote $ machapisho = kupata_ vifaa ($ args); // HTML OUTPUT} add_shortcode ("ushuhuda", "mzigo_wa ushahidi");

Kwa kuwa unaweza kuona tuna sifa za shortcode zilizobeba na kupitishwa kwa safu ya args ya $ wakati inapohakikisha, kwa muundo ambao WordPress inahitaji, hivyo tunaweza kupakia machapisho kutumia yao.

Sasa tunahitaji kuongeza msimbo wa HTML huko, kufuatia muundo wa default wa flexslider. Hapa ni jinsi itaonekana kama:

Echo '<div>'; Echo '<ul>'; Foreach ($ posts kama $ post) {// kupata picha ya thumb $ url_thumb = wp_get_attachment_thumb_url (get_post_thumbnail_id ($ post-> ID)); $ link = get_url ($ post); Echo '<li>'; kama (! tupu ($ url_thumb)) {echo '<img src = "' $ url_thumb. '" />'; } echo '<h2>'. $ post-> post_title. '</ h2>'; ikiwa (tupu ($ post-> post_content)) {echo '<p>' $ $ post-> post_content. '<br />'; } ((tupu ($ link)) {echo '<a href="'.$link.'"> Tembelea Tovuti </a> </ p>'; } echo '</ li>'; } echo '</ ul>'; Echo '</ div>';

Kusubiri, lakini kwa nini tunaweza kuunda msimbo wa HTML ndani ya kazi ya PHP? Hiyo ni kwa sababu tunaweza kupakia maudhui kwa hali tu ikiwa mtumiaji ameongeza maudhui, kwa hivyo huwezi kuwa na vitambulisho vya HTML vyenye tupu, unasubiri kuharibu mpangilio wako.

Je, ni juu ya ubao wa kando?

Watu wengi wanataka tu kuonyesha ushuhuda kwenye ubao wa vidogo, na programu hii haifanyi kazi vizuri tangu vilivyoandikwa vyenye maandishi haipati mchakato mfupi. Kuna suluhisho rahisi kwa hili, tu kuongeza hii katika msimbo wako:

add_filter ('widget_text', 'do_shortcode');

Nini hapo?

Hivyo, umefurahia mafunzo haya? Ungeongeza nini kama chaguo kwa shortcode yako ya ushuhuda? Je, una mawazo yoyote ya machapisho ya baadaye? Hebu tujue kutumia sehemu ya maoni!

Kuhusu Rochester Oliveira

Mimi ni mtengenezaji wa mtandao na mjasiriamali kutoka Itajubá (MG), Brasil. Ninapenda kuandika kuhusu mada ya wazi na kufanya mambo mengine ya baridi.

Kuungana: