Italiano
(See below for English)
Come ho già detto in qualche post fa, sto facendo un plugin per implementare i tag su flatpress.
Dopo alcuni giorni di lavoro, pensando di averlo finito, mi accorgo di un bug: dalla seconda pagina non funziona più il filtro dei tag (e me ne sono accorto per puro caso!!)
La colpa è di Pretty URLs, che gestisce gli url delle pagine ricreandoli dall’inizio.
Le soluzioni sono quattro:
- Fare un plugin che non supporta PrettyURLs
- Fare un plugin che usi delle estensioni PECL
- Fare un plugin solo per PHP 4 (e io uso PHP5 😊 )
- Fare una classe sostitutiva a pretty urls
L’unica che mi pare accettabile è la quarta, ed ecco il codice (testato, sembra funzionare):
## Replacement Class for PrettyURLs Plugin if(class_exists('Plugin_PrettyURLs')) { class class_name { function class_name(&$original) { # Constructor $this->original=&$original; $this->baseurl=&$original->baseurl; } function permalink($str, $id) { return $this->original->permalink($str, $id); } function commentlink($str, $id) { return $this->original->commentlink($str, $id); } function feedlink($str, $type) { return $this->original->feedlink($str, $type); } function commentsfeedlink($str, $type, $id) { return $this->original->commentsfeedlink($str, $type, $id); } function staticlink($str, $id) { return $this->original->staticlink($str, $id); } function categorylink($str, $catid) { return $this->original->categorylink($str, $catid); } function yearlink($str, $y) { return $this->original->yearlink($str, $y); } function monthlink($str, $y, $m) { return $this->original->monthlink($str, $y, $m); } function daylink($str, $y, $m, $d) { return $this->original->daylink($str, $y, $m, $d); } function nextprevlink($nextprev, $v) { if(!empty($fp_params['myparam'])) { ## My code here } else return $this->original->nextprevlink($nextprev, $v); } } }
Si fa il backup di $plugin_prettyurls, quindi si dà a $plugin_prettyurls questa classe: … [Leggi il resto]