WordPress è una grande piattaforma multiuso. Puoi creare molti siti Web con molti scopi diversi: un sito web aziendale, una vetrina fotografica, un portale di notizie, un sito web di ristoranti con menu interattivi ... Oh, e ovviamente i blog. Puoi blog con WordPress. Dimenticato di questo.
Stranamente, le organizzazioni senza scopo di lucro tendono a trascurare questa flessibilità e ad approfittarne. In questo tutorial, mostreremo come creare un semplice script di petizione per dimostrare come un'organizzazione può trarre vantaggio da WordPress.
Sono un grande fan degli shortcode (come puoi vedere dai miei post precedenti), quindi creeremo una serie di shortcode e alcune utili funzioni per gli shortcode da usare. Stiamo andando a ottenere tutti questi insieme in un file chiamato petition.php e usarlo come plugin per WordPress.
Dal momento che li useremo all'interno dei nostri shortcode, ho pensato che sarebbe stato meglio crearli e spiegarli prima.
Se stai utilizzando PHP5 sul tuo server, utilizzeremo i validatori di e-mail incorporati per la nostra funzione:
// funzione di convalida dell'indirizzo e-mail validate_email ($ email) if ($ email == ") return false; else return filter_var ($ email, FILTER_VALIDATE_EMAIL);
E se stai usando qualcosa di antico come PHP4, puoi usare una funzione diversa che fa uso di espressioni regolari:
// funzione di convalida dell'indirizzo e-mail validate_email ($ email) if ($ email == ") return false; else $ eregi = preg_replace ('/([a-z0-9_.-]+)' . '@'. '([a-z0-9 .-] +) 2,255'. '.'. '([az] +) 2,10 / i', ", $ email); return empty ($ eregi)? vero falso;
Notare che: Non è possibile utilizzare entrambi!
Potremmo creare e utilizzare una tabella di database diversa per contenere le richieste delle petizioni, ma non penso che sia una buona pratica. E hey, cosa c'è che non va nei campi personalizzati?
// invia il firmatario con una meta chiave 'petition_submission' alla submission function ($ name, $ email, $ date) global $ post; $ array = array ('name' => $ name, 'email' => $ email, 'date' => $ date); $ petition_meta = serialize ($ array); add_post_meta ($ post-> ID, 'petition_submission', $ petition_meta); ritorna vero;
Come puoi leggere dal codice;
nome $
, $ e-mail
e $ date
variabili nella funzione (dallo shortcode a cui arriveremo in un minuto)'Petition_submission'
Semplice, vero? Ora possiamo arrivare al abbastanza difficile parte.
Ora possiamo salvare gli invii, ma come li otterremo e faremo cose con loro? Ecco come:
// recupera gli invii dalla funzione post get_the_submissions ($ number = 5) $ petition_meta = get_post_custom_values ('petition_submission'); if ($ petition_meta) $ output = array_slice ($ petition_meta, $ number * -1); return array_reverse ($ output);
Ricorda quando ho detto che sarà abbastanza difficile? Ho mentito:
petition_submission
'chiave per una variabile di matricenumero di $
(5 per impostazione predefinita) delle presentazioni dalla fine dell'array (nota il -1)Useremo alcuni selettori CSS nel codice, quindi inseriscili nel tuo style.css file del tuo tema:
#petition_form Etichetta #petition_form font-weight: bold; dimensione del carattere: più grande; altezza della linea: 150%; #petition_form input display: block; margine: 5px 0; imbottitura: 3px; #petition_name width: 200px; #petition_email width: 200px; #petition_submit padding: 5px; .petition_success color: # 693; .petition_error color: # A00; .petition_list list-style: none; margine: 0; padding: 0; .petition_list li background-image: none! important; .petition_list span display: inline-block; larghezza: 45%; imbottitura: 1%; margine: 1%; background-color: #FAFAFA; .submission_name .submission_date font-style: italic; colore: # 888;
Sentiti libero di modificare i valori predefiniti delle proprietà :)
Abbiamo completato le funzioni di supporto e il codice CSS. Ora, passiamo alla parte divertente: gli shortcode!
Potremmo fare solo un grande shortcode per allegare il modulo, elencare le voci e mostrare il numero di richieste ma ... perché uccidere tutto il divertimento? Inoltre, gli shortcode separati per questi tre elementi ci libererebbero dall'usarli ovunque desideriamo nel nostro contenuto.
Ti ho detto come amore shortcodes?
Questa funzione è lunga, quindi spiegherò il codice all'interno del codice, con i commenti PHP:
function petition_form_sc ($ atts) // estrai i parametri shortcode extract (shortcode_atts (array (// il valore testuale del pulsante submit 'submit' => 'Submit', // il testo per il messaggio di errore 'error' => 'Il tuo indirizzo e-mail non è valido. Reinserire il modulo con un nome e un indirizzo e-mail validi.', // il testo quando l'invio ha esito positivo 'successo' => 'Il tuo invio è stato salvato. tu! '), $ atts)); // gli elementi HTML della nostra petizione form $ form = ''; // se il modulo è "POST" ed ... if ($ _SERVER ['REQUEST_METHOD'] == 'POST') // ... ottieni il nome ... $ name = $ _POST ['petition_name']; // ... e l'indirizzo e-mail ... $ email = $ _POST ['petition_email']; // ... e la data di "just now", con il formato della data delle tue opzioni di WP. $ date = date (get_option ('date_format')); // prima convalidare l'indirizzo e-mail! if (validate_email ($ email) == true) // l'indirizzo e-mail è valido! ricorda la funzione qui sotto? invio ($ name, $ email, $ date); // abbiamo inviato le variabili con la funzione submission (), ora stampiamo il messaggio di successo WITHOUT THE FORM: return '
Ho cercato di essere il più chiaro possibile, ma se credi che ho lasciato qualcosa, sentiti libero di chiedermi commentando questo post!
La parte "ultime voci" è la prova che le persone si uniscono alla tua causa, quindi dobbiamo elencare almeno un certo numero di proposte.
Anche questa non è una funzione breve, quindi spiegherò di nuovo il codice con i commenti:
function petition_list_sc ($ atts) // estrai i parametri shortcode extract (shortcode_atts (array (// potremmo impostare un numero predefinito ma ricordati, l'abbiamo già fatto nella funzione get_the_submissions () :) 'numero' => "), $ atts)); // ottieni gli ultimi inserimenti $ number ... $ submissions = get_the_submissions ($ number); // ... e list 'em! $ output ='
Di nuovo, sentiti libero di chiedere tutto ciò che vuoi chiedere commentando questo post.
Questa è una funzione veramente piccola, solo per ottenere il numero di voci inviate:
function petition_count_sc () $ petition_meta = get_post_custom_values ('petition_submission'); conteggio di ritorno ($ petition_meta); add_shortcode ('petition_count', 'petition_count_sc');
Come puoi vedere, getta semplicemente i campi personalizzati su un array e lo conta e restituisce il numero.
Vorrei sottolineare che questo è un esempio molto semplice per mostrare alle organizzazioni di trarre beneficio da WordPress utilizzando script come questi. Se riesci a pensare ad un miglioramento per questo script (o tutorial), ti preghiamo di condividere i tuoi pensieri nei commenti qui sotto. Grazie per aver letto!