Italiano
Scrivendo un plugin per i tag mi sono chiesto: “Come si potrebbe far vedere tutti i post con uno stesso tag?”
Andando avanti a pensare mi sono detto: “una specie di categoria”: ed ecco qui la risposta: quando ce n’è il bisogno, si fa creare una falsa categoria durante il filtro init.
Le categorie sono gestite dalla classe FPDB che le carica solo una volta e flatpress ne crea solo un’istanza.
Ecco il codice di base:
class plugin_tag_walker {
var $valid=true;
function current_key() {
return current($this->array);
}
function next() {
$n=next($this->array);
if($n==false)
$this->valid=false;
return $n;
}
}
class plugin_tag_fpdb {
function length() {
return $this->len;
}
function walker($p1=null) {
$a=new plugin_tag_walker();
$a->array=$this->array;
return $a;
}
}
function prova_cat() {
global $fpdb, $fp_params;
if(isset($_GET['tag'])) { ### Solo se c'è il parametro GET tag
$fp_params['cat']=-50; ### L'id della categoria
$p=new plugin_tag_fpdb();
$p->array=array(
'100715151839', ### Quali sono i post
'100715163207',
'100808220001'
);
$p->len=count($p->array);
if($fp_params['count']>$p->len)
$fp_params['count']=$p->len;
$fpdb->_indexer[$fp_params['cat']]=&$p;
}
return true;
}
add_filter('init', 'prova_cat');
Praticamente la funzione prova_cat assegna alla categoria -50 un oggetto che ne restituisce un altro che una volta chiamato dal codice di flatpress restituisce i post. … [Leggi il resto]