WordPress este o mare platformă multi-scop. Puteți crea multe site-uri web cu multe scopuri diferite: un site web corporativ, o prezentare de fotografie, un portal de știri, un site de restaurant cu meniuri interactive ... Oh, și bloguri, desigur. Puteți să faceți blog cu WordPress. Am uitat de asta.
În mod ciudat, organizațiile non-profit tind să ignore această flexibilitate și să profite de ea. În acest tutorial, vom arăta cum să creați un script de petiție simplu pentru a demonstra modul în care o organizație poate beneficia de WordPress.
Sunt un fan mare de coduri scurte (după cum puteți vedea din postările mele anterioare), așa că vom face o grămadă de coduri scurte și câteva funcții utile pentru utilizarea codurilor scurte. Vom lua toate acestea împreună într-un fișier numit petition.php și utilizați-l ca un plugin WordPress.
De când le vom folosi în interiorul codurilor scurte, am crezut că ar fi mai bine să le creezi și să le explici mai întâi.
Dacă utilizați PHP5 pe serverul dvs., vom folosi validatorii de e-mail încorporați pentru funcția noastră:
// funcția de validare a adresei de poștă electronică validate_email ($ email) if ($ email == ") return false; altceva return filter_var ($ email, FILTER_VALIDATE_EMAIL);
Și dacă utilizați ceva antic ca PHP4, puteți utiliza o funcție diferită care utilizează expresii regulate:
// funcția de validare a adresei de poștă electronică validate_email ($ email) if ($ email == ") return false; altceva $ eregi = preg_replace ('/([-z0-9_.-]+)' ([a-z0-9 .-] +) 2,255 '' '([az] +) 2,10 / i', ", $ email); returnare goală ($ eregi)? adevarat fals;
Vă rugăm să rețineți: Nu puteți folosi ambele!
Am putea crea și utiliza o altă tabelă de baze de date pentru a conține observațiile petițiilor, dar nu cred că este o practică bună. Și hei, ce e în neregulă cu câmpurile personalizate?
// trimiteți semnatarul cu o cheie meta "petition_submission" la postarea funcției post ($ name, $ email, $ date) global $ post; $ array = array ('nume' => $ nume, 'email' => email, 'data' => $ data); $ petition_meta = serializa ($ array); add_post_meta ($ post-> ID, 'petition_submission', $ petition_meta); return true;
După cum puteți citi din cod;
numele $
, $ e-mail
și data de $
variabile în funcție (de la codul scurt la care vom ajunge într-un minut)'Petition_submission'
Simplu, nu? Acum putem ajunge la cam greu de- parte.
Acum putem salva observațiile, dar cum le vom obține și vom face lucruri cu ei? Iată cum:
// preluați înregistrările din funcția post get_the_submissions ($ number = 5) $ petition_meta = get_post_custom_values ('petition_submission'); dacă ($ petition_meta) $ output = array_slice ($ petition_meta, $ number * -1); retur array_reverse (ieșire $);
Amintiți-vă când am spus că va fi cam greu de-? Am mintit:
petition_submission
'pentru o variabilă de matricenumăr $
(5 în mod implicit) de depuneri de la sfârșitul matricei (observați -1)Vom folosi câțiva selectori CSS în cod, așa că puneți-i în lista dvs. style.css fișier al temei dvs.:
#petition_form #petition_form font-weight: bold; font-size: mai mare; linia-înălțime: 150%; #petition_form input display: block; margine: 5px 0; padding: 3px; #petition_name width: 200px; #petition_email width: 200px; #petition_submit padding: 5px; .petition_success culoare: # 693; .petition_error culoare: # A00; .petition_list style-list: none; marja: 0; umplutura: 0; .petition_list li imagine-imagine: nimic! important; .petition_list span afișare: inline-block; lățime: 45%; umplutură: 1%; marja: 1%; fundal-culoare: #FAFAFA; .submission_name .submission_date font-style: italic; culoare: # 888;
Nu ezitați să editați valorile implicite ale proprietăților :)
Am terminat funcțiile de ajutor și codul CSS. Acum, să ajungem la partea distractivă - codurile scurte!
Am putea face doar cu un scurt cod scurt pentru a atașa formularul, a lista intrările și a arăta numărul de înscrieri, dar ... de ce ucide toate distracțiile? În plus, codurile scurte separate pentru aceste trei elemente ne-ar elibera să le folosim oriunde vrem în conținutul nostru.
Ți-am spus cum dragoste numerele scurte?
Această funcție este una lungă, așa că voi explica codul în interiorul codului, cu comentarii PHP:
funcția petition_form_sc ($ atts) // extrageți extrasele parametrilor de scurtătură (shortcode_atts (array (// valoarea textului butonului submit 'submit' => 'Submit', // textul mesajului de eroare ' "Adresa dvs. de e-mail nu este validă. Vă rugăm să reintroduceți formularul cu un nume valabil și o adresă de e-mail valabilă.", // textul în care succesul a avut succes '=>' Trimiterea dvs. a fost salvată. tine! '), $ atts)); // elementele HTML ale cererii noastre de petiționare $ form = '„; // dacă formularul este "POST" ed ... dacă ($ _SERVER ['REQUEST_METHOD'] == 'POST') // ... obține numele ... $ name = $ _POST ['petition_name']; // ... și adresa de e-mail ... $ email = $ _POST ['petition_email']; // ... și data "doar acum", cu formatul de date al opțiunilor WP. $ date = data (get_option ('date_format')); // validați mai întâi adresa de e-mail! dacă (validate_email ($ email) == true) // adresa de e-mail este validă! amintiți funcția de mai jos? depunerea ($ name, $ email, $ date); // am trimis variabilele cu funcția de trimitere (), acum imprimăm mesajul de succes FĂRĂ FORMULAR: returnați '
Am incercat sa fiu la fel de clar cum pot fi, dar daca crezi ca am lasat ceva afara, simte-te liber sa ma intrebi comentand acest post!
Partea "ultimele intrări" este dovadă că oamenii se alătură cauzei dvs., așa că trebuie să menționăm cel puțin un număr de observații.
Aceasta nu este o funcție scurtă, așa că voi explica din nou codul cu comentarii:
funcția petition_list_sc ($ atts) // extrageți parametrii shortcode extract (shortcode_atts (array (// am putea seta un număr implicit, dar amintiți-vă, am făcut deja acest lucru în funcția get_the_submissions () :) 'number' => $ atts)); // obține numărul ultimelor articole trimise $ ... submissions = get_the_submissions ($ number); // ... and list 'em! $ output ='
Din nou, nu ezitați să întrebați ce vreți să întrebați comentând acest post.
Aceasta este o funcție foarte mică, doar pentru a obține câte intrări sunt trimise:
funcția petition_count_sc () $ petition_meta = get_post_custom_values ('petition_submission'); retur numărul ($ petition_meta); add_shortcode ('petition_count', 'petition_count_sc');
După cum puteți vedea, aruncă câmpurile personalizate într-o matrice și o numără și returnează numărul.
Ar trebui să subliniez că acesta este un exemplu foarte simplu pentru a arăta organizațiilor că pot beneficia de WordPress prin utilizarea unor astfel de scripturi. Dacă vă puteți gândi la o îmbunătățire pentru acest script (sau tutorial), vă rugăm să vă împărtășiți gândurile în comentariile de mai jos. Vă mulțumim pentru lectură!