WordPress mette a disposizione molti modi per accedere ai nomi delle sue cartelle e costruirne di nuovi. Ecco un elenco utile con esempi eseguiti, per essere più chiari, a partire da una sottocartella posizionata in un ipotetico plugin:
Plugins
Iniziamo con plugins_url() utile per determinare e costruire url quando si scrive un plugin.
plugins_url()
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| // Se questa riga viene eseguita da
// http://www.miosito.com/wp-content/plugins/my_plugin/classes/test.php
$r = plugins_url();
// http://www.miosito.com/wp-content/plugins/
$r = plugins_url( 'myscript.js', __FILE__ );
// http://www.miosito.com/wp-content/plugins/my_plugin/classes/myscript.js
$r = plugins_url ( 'assets' );
// http://www.miosito.com/wp-content/plugins/assets
$r = trailingslashit( plugins_url ( 'assets' ) );
// http://www.miosito.com/wp-content/plugins/assets/ |
Continua...
Tramite get_posts() è possibile selezionare una sequenza esatta di post utilizzando il parametro post__in negli argomenti passati negli inputs. L’ordine tuttavia non è coerente con la sequenza indicata in quanto WordPress esegue dei controlli sulla clausula ORDER BY della select, nonostante dalla versione 2.8 sia disponibile il valore none.
Continua...
Lavorando con un Custom Post Type (CPT) viene spontaneo utilizzare le funzioni interne di WordPress per visualizzare e filtrare i post di questo tipo. Sia che si usi la get_posts() sia che si crei direttamente un oggetto WP_Query, risulta comodissimo poter creare loop personali sulle proprie tipologie di post. Inoltre WordPress permette di effettuare filtri per tassionomie personali, sul count, sull’ordine, arrivando fino ai meta data. Utilissimo, infatti, è il processo che permette di indicare nelle condizioni di where che tipo di meta data confrontare e con che regole.
Continua...
Quando di aggiungono campi aggiuntivi a pagine e post, oppure ai propri Custom Post Type (CTP), bisogna registrare una action per memorizzare questi nuovi dati. L’implementazione di questa procedura è sostanzialmente sempre lo stessa, cambiano solo i campi e le modalità di salvataggio; i dati extra possono risiedere nei ‘custom field’, ovvero la tabella post meta, oppure su una o più tabelle personali.
Continua...
Se avete registrato un vostro Custom Post Type (CPT), soprattutto se di tipo ‘pagina’, vi potrebbe servire di determinare se si sta visualizzando quella determinata pagina, il ‘single’ per intenderci. In questo caso è inutile provare con is_page() o is_page_template(). La soluzione pulita è la seguente:
1 2 3 4 5 6
| if (is_singular('cpt_key')) {
global $post;
if ($post->post_name == 'slug_pagina') {
// Il tuo codice qui... tipo add_action(), wp_enqueue_scripts(), etc...
}
} |
Continua...
Con WordPress 3.3 anche jQuery e tutti i suoi moduli sono stati allineati. Adesso infatti è possibile accedere alla nuova lista dei moduli dell’ultima release 3.3, come ad esempio l’autocomplete. Ecco uno snippet per una buona inclusione:
1 2 3 4 5 6
| // Moduli che WordPress caricherà per noi propedeutici allo script "myscript.js"
$deps = array('jquery-ui-slider',
'jquery-ui-datepicker',
'jquery-ui-autocomplete'
);
wp_enqueue_script ('key', 'js/myscript.js', $deps, 1 .3 .4 , true); |
Continua...
Ora che WordPress permette di creare dei tipi post personalizzati (CPT), diventa utile poter aggiungere dei nostri stili e dei nostri script quando si visualizzano o si modificano i nostri post. Il modo migliore per farlo, compatibile con la release 3.3 è il seguente:
1 2 3 4 5 6 7
| add_action('admin_enqueue_scripts', function() {
global $typenow;
if ($typenow == 'id_custom_post') {
wp_enqueue_style('key_style', 'css/customstyle.css');
wp_enqueue_script('key_script', 'js/customscript.js');
}
}); |
Continua...
WordPress permette di associare una thumbnail ad un post, pagina o post personalizzato. Se è facilissimo estrarre l’intera immagine da codice, grazie alle funzioni the_post_thumbnail() o get_the_post_thumbnail, che restituiscono il completo tag img, risulta meno intuitivo come ottenere il solo link:
1 2 3 4
| // Se $post_id è l'id del post
$image_id = get_post_thumbnail_id($post_id);
$image = wp_get_attachment_image_src($image_id, 'full');
echo $image[0] |
Continua...
La funzione PHP usort() vista in WordPress: ordinare una serie di post per un campo qualsiasi può essere utilizzata facilmente anche per ordinare array di array. Ad esempio se abbiamo:
1 2 3 4 5 6 7 8 9
| $args = array(
array( 'nome' => 'mike', 'anno' => 2001 ),
array( 'nome' => 'frank', 'anno' => 2010),
...
);
usort($args, function($a, $b) {
return ($a['anno'] > $b['anno']);
}); |
Continua...
Impostando nel file wp-config.php la define define('WP_DEBUG', true); si attivano i log a video prodotti da PHP, riempiendo lo schermo di Notice, Warning e quant’altro. Se per controlli “volanti” questo può essere utile, in situazioni di esercizio è vivamente sconsigliato, per ovvi motivi. WordPress fortunatamante permette di suo di “convogliare” questi log su un file, che per impostazione predefinita viene posto in /wp-content/debug.log.
Continua...
Ultimi Commenti
Giovambattista Fazioli: @ale: Come indicato @Kevin vedi sul repo di GitHub: https://github.com/gfazioli/Ch roma-Key
Giovambattista Fazioli: @Kevin: See https://github.com/gfazioli/Ch roma-Key
Kevin: Very nice example – would like to see the .fla too!
Ludovica: Ciao! Ti spiego il mio dubbio. Quando scrivo un post non inserisco immagini nell’articolo (se così...
Marco: ciao @Giovambattista Fazioli, grazie per tutte le delucidazioni di questa ottima guida. Avrei un quesito da...