In questa serie, stiamo dando un'occhiata alle azioni di WordPress: un tipo di hook che l'applicazione offre che ci consente di personalizzare l'esecuzione. Nell'ultimo articolo, abbiamo esaminato la seconda serie di 10 azioni che ci ha portato fino a 20 che abbiamo trattato finora.
In linea con lo spirito degli articoli precedenti, daremo un'occhiata a altre 10 azioni insieme a esempi di ciascuno.
Detto questo, riprendiamo.
Manipolazione get_posts ()
Prima che sia elaborato
Il pre_get_posts
l'azione gestisce una delle funzioni di query più importanti: get_posts ()
.
Supponiamo che tu gestisca un blog di recensioni cinematografiche e che il tipo di post "Film" venga visualizzato nei risultati di ricerca. Puoi includere qualsiasi tipo di messaggio che desideri con l'aiuto delle seguenti righe di codice:
is_main_query ()) if ($ query-> is_search) $ query-> set ('post_type', array ('post', 'film')); // Esempio di origine: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts?>
Ecco! Ora i risultati di ricerca del tuo sito Web includeranno il tipo di post "Film" oltre ai post normali.
Ci sono in realtà molte azioni per le transizioni di stato post - draft_to_publish
, new_to_future
, publish_to_private
e così via. WordPress raccoglie questo insieme di azioni e lo chiama $ OLD_STATUS _to _ $ NEW_STATUS
nel codice.
Ma se hai bisogno di un'azione per tenere d'occhio tutti i cambiamenti di stato, puoi usare il transition_post_status
azione.
Immagina di avere un blog multi-autore con tre editori e hai bisogno di informazioni su ogni modifica dello stato del post. In tal caso, puoi utilizzare lo snippet di codice riportato di seguito:
post_type! == 'post') return; $ title = $ post-> post_title; $ a = get_option ('admin_email'); $ subject = 'Stato post modificato'; $ body = "Hey, \ n \ nLo stato del post \" $ title \ "è stato modificato da \" $ old_status \ "a \" $ new_status \ ". \ n \ nCheers!"; wp_mail ($ to, $ subject, $ body); ?>
Se hai mai bisogno di iniettare un file JavaScript nel pannello di amministrazione del tuo sito web, il admin_enqueue_scripts
l'azione è per te: questa pratica e piccola azione è responsabile per l'accodamento degli script (e degli stili) all'interno del dashboard di WordPress.
Diciamo che hai creato una meta box speciale ma hai bisogno di un file JavaScript nella cartella del tuo plugin per far funzionare la meta-box. cosa fai? Non si stampa a tag in your code - you use the code below!
As its name suggests, this useful action is called when a post is saved to the database.
Sometimes, I forget to set a featured image for my posts, although all my posts should have one. While searching for an answer for my problem, I stumbled accross this elegant solution:
$post_id, 'post_status' => 'draft' ) ); add_action( 'save_post', 'wpds_check_thumbnail' ); else delete_transient( 'has_post_thumbnail' ); function admin_notices_example() // check if the transient is set, and display the error message if ( get_transient( 'has_post_thumbnail' ) == 'no' ) echo ''; delete_transient( 'has_post_thumbnail' ); // Example Source: http://wpdevsnippets.com/require-post-thumbnail-uploaded-before-publishing/ ?>You must select a featured image for your post.
A long but awesome example, am I right?
Meta boxes are arguably one of the fundamental reasons WordPress is the most flexible content management system in the world. It's true: You can crate almost anything as a meta box and let your users create post data with them. And the add_meta_boxes
action is the main hook we use to create meta boxes.
We're going through actions and I don't want to digress from the topic, so I'm just going to show you how the action is used: By filling a function with the add_meta_box()
function(s) and hooking it to the add_meta_boxes
action:
[tip]If you want to learn more about creating custom meta boxes, check out this amazing tutorial on this topic written by Christopher Davis.[/tip]
The "At a Glance" section, formerly named "Right Now", is the primary widget of the dashboard of every WordPress installation. With the activity_box_end
action, you can safely play with that area.
Let's say you're a freelance WordPress developer and you want your clients to remember your phone number. With the code snippet below, you can leave a note for them and put your phone number under the "At a Glance" section:
Don't put your personal number, though: You wouldn't want to be called up at 11 p.m. on Saturday.
There are many default widgets that WordPress offer in its core, and the "Meta" widget is one of them. With the help of the wp_meta
action, we can customize the widget any way you like.
Granted, the "Meta" widget isn't the most popular one among WordPress' default widgets, but you can make it more functional and appealing by adding extra lines and links to it, like so:
Follow us on Twitter:' . $twitter_username . ''; ?>
Of course, this is just a cheesy example but hey, it works!
The "dashboard" is the main page of the administration panel of every WordPress installation. With the wp_dashboard_setup
action, you can customize the dashboard any way you like.
If you use Disqus in your comments section (without the official plugin) and want to see latest comments in your dashboard, you can use the code snippet below to add a dashboard widget:
' . '
Cambia le variabili $ disqus_username
$ NUMBER_OF_COMMENTS
e sei a posto!
Oh guarda, un'azione per una funzione collegabile! WordPress definisce "funzioni collegabili" come questa:
Queste funzioni possono essere sostituite tramite plugin. Se i plug-in non ridefiniscono queste funzioni, verranno utilizzate al loro posto.
E questa pratica piccola azione è una parte del pluggable wp_set_current_user
funzione principale, che cambia l'utente corrente per ID o nome.
Ora non cambieremo l'utente, ma utilizzeremo l'azione e controlleremo le funzionalità dell'utente corrente, quindi disabilitiamo la barra se l'utente è solo un abbonato:
Se hai bisogno di fare qualcosa dopo che WordPress ha terminato di caricare plugin attivati, puoi contare su plugins_loaded
azione.
Il modo corretto per inizializzare il plugin e farlo funzionare è agganciare la sua funzione principale a plugins_loaded
azione. Qui abbiamo l'esempio più semplice al mondo:
Questo è un testo fittizio!'; // Esempio di origine: http://www.scratchinginfo.com/common-wordpress-action-hooks-for-plugin-development/?>
Se hai bisogno di un esempio migliore, e sono sicuro che lo farai, dovresti assolutamente dare un'occhiata al "WordPress Plugin Boilerplate" di Tom McFarlin che ha tutto il necessario per costruire un plugin per WordPress con in mente il concetto di programmazione orientata agli oggetti.
Abbiamo esaminato il terzo lotto di 50 azioni in questo articolo. Spero che ti sia piaciuto e imparato nuove cose da esso. Ci vediamo nel prossimo!
Voglio sentire anche i tuoi pensieri. Cosa ne pensi di queste azioni? Pubblica i tuoi commenti qui sotto; e se ti è piaciuto l'articolo, non dimenticare di condividerlo!