Categoria ‘WordPress’


Funzioni anonime

Mi è stato chiesto quale sia il vantaggio, o svantaggio, nell’uso delle funzioni anonime o inline (o onfly), utilizzate moltissimo in Javascript e, oramai con la 5.3, anche in PHP.
Una funzione inline, o anonima perché non ha – appunto – un nome, è un modo veloce per scrivere alcune procedure, indentando ad albero sequenze di callback ad esempio. Quasi tutti i linguaggi supportano la scrittura di funzioni di questo, ognuno al limite con le sue peculiarità e restrizioni. Possono anche avere nomi diversi e sintassi particolari, come i cosiddetti blocks in Objective-C.

Continua...

WordPress snippet: estrarre meta value con get_posts()

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...

Bachi di inizio anno: WordPress update e WPML get_page_by_path()

Il 2012 è iniziato con qualche ora di deep-debugging a causa di due (noti) bachi abbastanza fastidiosi. Il primo, tra l’altro abbastanza datato, presente nel core di WordPress che riguarda il metodo update() della classe wpdb, con la globale (e famosa) omonima istanza $wpdb. Il difetto appare quando si tenta di aggiornare un campo a NULL. Nonostante le numerose lamentele, il team di sviluppo WordPress sembra non trovare soluzione al fastidioso problema. Infatti, ad oggi, l’unica soluzione è quella di scriversi l’SQL per proprio conto.

Continua...

WordPress snippet: la action save_post

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...

WordPress snippet: is_page() su Custom Post Type

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...

WordPress 3.3: tutto jQuery finalmente

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...

WordPress snippet: aggiungere stili e script ai Custom Post Type

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 snippet: src thumbnail

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...

WordPress Delete Post

WordPress permette di intercettare quando un post – anche di tipo custom – sta per essere eliminato. Esistono due hook action che possono essere utilizzate: delete_post e deleted_post. In prima analisi la prima dovrebbe essere riconducibile ad un “sta per essere eliminato” il post, anche se così non sembra essere, o meglio.

Continua...

Very short snippet: impostare i log di WordPress su file

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...



Stop SOPA