15 utili funzioni WordPress che tutti gli sviluppatori dovrebbero conoscere
WordPress è pieno di grandi funzioni per noi sviluppatori da usare. Siamo in grado di estrarre elenchi di post dal nulla, manipolare quasi tutto su di loro, afferrare qualsiasi utente desideriamo e visualizzare le loro connessioni social in un batter d'occhio.
Ci sono tuttavia alcune funzioni che sembrano essere trascurate per ragioni sconosciute. Ho programmato WordPress per circa 8 anni e occasionalmente trovo ancora qualcosa di nuovo! Diamo un'occhiata ad alcuni dei miei funzioni preferite trascurate e impara come usarli lungo la strada.
antispambot ()
Solitamente mi alzo un po 'le sopracciglia, sembra essere una delle funzioni più nascoste nel codice base.
sostituisce i caratteri con entità HTML a cui è possibile accedere maschera gli indirizzi email dai cattivi raschietti.antispambot ()
$ email = '[email protected]'; echo 'Puoi contattarmi a'. antispambot ($ email). 'in qualsiasi momento'.
Anche se questo è un utile tidbit, è anche un esempio del perché alcune persone criticano WordPress - questa è una funzione con un nome orribile. Dalla lettura del nome della funzione, non hai idea di cosa faccia.
human_time_diff ()
Quando ho appreso per la prima volta di questa funzione circa un anno fa, ho pensato che dovesse essere un'aggiunta recente che ho trascurato in un log delle modifiche. Non proprio…
Questa funzione - che emette la differenza tra due timestamp - è stata dalla versione 1.5 (che è il 17 febbraio 2018!).
Il seguente grande frammento che ho preso in prestito dal codice mostra quanto tempo fa è stato pubblicato un post attuale. Usa il pubblica la data del post come primo argomento e il data corrente come seconda.
echo 'Questo post è stato pubblicato'. human_time_diff (get_the_time ('U'), current_time ('timestamp'))). 'fa';
get_post_meta ()
Resta con me qui, so che questa è una funzione ben utilizzata, tuttavia, come funziona non è così-conoscenza comune. Prima di tutto, omettendo il secondo e il terzo parametro è possibile richiama tutti i metadati per un post.
$ all_meta = get_post_meta (14);
Anche se prendi i dati solo per una singola chiave, viene comunque estratto tutto il postmeta.
La ragione è in realtà piuttosto logica. I metadati sono usati in più posti. Se
interroga il database ogni volta che viene utilizzato, finendo con troppe query. Invece, se si estraggono i metadati, lo memorizza nella cache e utilizza i valori memorizzati nella cache su tutti i successivi recuperi di metadati.get_post_meta ()
wp_upload_bits ()
Questa funzione è una scala funzione di caricamento file. Anche se non sposta il file nella cartella uploads e lo aggiunge alla sezione media di WordPress, è estremamente comodo e puoi sempre fare il resto con
funzione.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['nome'], null, file_get_contents ($ file ['tmp_name']));
Alcune spiegazioni sono a portata di mano: il primo parametro è il nome del file. Il secondo è deprezzato quindi dovrebbe essere impostato su null (eyeroll in coerenza con WordPress). Il terzo parametro è il contenuto effettivo del file.
get_post_field ()
In passato ho visto alcuni esempi in cui qualcuno ha scritto un ciclo per ottenere un conteggio dei commenti per un post o ha scritto una query di database dedicata per questo. Non hai bisogno di loro, ciò di cui hai bisogno è
. Questa funzione recupera il valore di un singolo campo per un singolo post nel database. Prendiamo un conteggio dei commenti!get_post_field ()
Questo post ha Commenti.
wpautop ()
Questa funzione è venuta al centro dell'attenzione un po ', ma è ancora relativamente sconosciuta. È simile al nativo di PHP nl2br
ma invece di creare nuove linee, esso avvolge il contenuto in paragrafi.
Questo è utile se hai una casella di testo e vuoi assicurarti che quando gli utenti creano paragrafi con interruzioni di linea doppia, rimangono visibili anche nel front-end.
Cosa dicono i nostri utenti
wp_is_mobile ()
Questa funzione ha un nome appropriato rileva quando un utente si trova su un dispositivo mobile e consente di visualizzare i contenuti di conseguenza. Poiché si tratta di un tag condizionale, restituisce true o false a seconda dello scenario.
Visita il nostro sito Web sul desktop per un'esperienza utente più ricca
wp_redirect ()
L'ultimo esempio mostra un'altra funzione pulita:
. Questo dovrebbe essere usato al posto del nativo di PHP wp_redirect ()
intestazione()
funzione. La funzione di reindirizzamento di WordPress ti consente di impostare un URL per reindirizzare a, e anche impostare un codice di stato, ottimo anche per gestire i reindirizzamenti permanenti.
// Per un URL che non è più in uso wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Scommetto che questa funzione deve la sua oscurità in parte alla popolarità del plugin WP-PageNavi. Di default WordPress mostra i link precedenti / successivi alla fine del tuo elenco di post. WP-PageNavi sostituisce quello con i numeri di pagina.
Questo può effettivamente essere fatto con un po 'di lavoro usando il
funzioni. Ha parecchi parametri quindi consiglio di dare un'occhiata alla documentazione.paginate_links ()
L'esempio seguente del codice mostra come aggiungerlo a un ciclo predefinito, ma aggiungerlo ai loop personalizzati non è molto.
globale $ wp_query; $ grande = 999999999; // ha bisogno di un intero improbabile echo paginate_links (array ('base' => str_replace ($ grande, '% #%', esc_url (get_pagenum_link ($ grande))), 'formato' => '? paged =% #%' , 'current' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Questa funzione completa il PHP morire()
funzione. La differenza è che questa funzione mostrerà un HTML in stile WordPress invece di un semplice testo. Puoi usare questa funzione per fermare l'esecuzione di PHP. È possibile aggiungere il messaggio, il titolo e gli argomenti aggiuntivi da visualizzare, ad esempio:
wp_die ("Spiacenti, non hai accesso a", "Autorizzazione negata");
has_block ()
Nella versione 5.0, WordPress ha introdotto un editor basato su blocchi, nome in codice Gutenberg. Questa funzione identificherà se il contenuto contiene un Gutenberg, esattamente lo stesso con il has_shortcode ()
funzione. Tornerà vero
se il contenuto contiene un blocco, o falso
se non lo fa.
wp_set_script_translations ()
Poiché molte parti dell'interfaccia utente di WordPress passeranno a JavaScript, è necessario un modo conveniente per registrare testi traducibili nel codice JavaScript che WordPress potrebbe analizzare e comprendere. Usa questa funzione per impostare stringhe tradotte per i tuoi script. Di seguito è riportato un esempio:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Un'altra funzione di spicco in WordPress 5.0. Questa funzione ti consente di registrare un nuovo blocco nel nuovo editor di WordPress. Il tuo blocco apparirà nel nuovo editor e lo inserirà .
register_block_type ('my-plugin / new-block', array ('title' => 'Nuovo blocco', 'icona' => 'megafono', 'categoria' => 'widget', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Questa funzione consente di effettuare una chiamata agli endpoint REST di WordPress tramite PHP. Molto utile quando è necessario recuperare un output dall'API REST per elaborarlo che elaboreremo ulteriormente all'interno del lato PHP invece che nel lato browser (front-end).
$ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ request); $ data = 200 === $ response-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Quando si costruisce un'interfaccia utente pesante per JavaScript in WordPress, in genere è necessario un insieme di dati iniziali contenuti nella pagina. Questa è la funzione che ti permetterà di farlo. Questa funzione è pensata per essere utilizzata insieme al array_reduce
, per esempio.
// Precarica i dati comuni. $ preload_paths = array ('/', '/ wp / v2 / types? context = edit', '/ wp / v2 / tassonomies? per_page = -1 & context = edit', '/ wp / v2 / themes? status = active' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'after');
Conclusione
Queste sono solo alcune funzioni che sembrano essere meno conosciute del resto. Scopro una nuova grande funzione ogni due mesi e sono sicuro che i miei amici sviluppatori là fuori potrebbero sorprenderci ulteriormente.
Se hai una funzione oscura preferita o una funzione che sarebbe utile ma non è disponibile, faccelo sapere nei commenti!