Wordpress

Perché WordPress è diverso dagli altri CMS

Questo video mostra il famoso easter egg introdotto con la versione 2.6. Una nota particolare è che è realizzato tutto in Javascript usando jQuery.
Code is poetry

{ Nessun Commento }

WordPress: mostrare i post correlati per tag

I post correlati sono un elenco di articoli che trattano lo stesso argomento del post che stiamo leggendo.
In questo post mostreremo un esempio di come visualizzare i post correlati per tag.

Questo il codice completo:

ID);
	if ($posttags) {
		$tags = array();
		$blacklist = array('blacklist');
		foreach ($posttags as $t) {
			if(!in_array(strtolower($t->name),$blacklist)) {
				$tags[] = str_replace(' ','-',$t->name);
			}
		}
		$ts = implode(",", $tags);
		$args = array(
				'numberposts' => 3,
				'tag'=> $ts,
				'exclude' => $post->ID,
				'orderby' => 'post_date',
				'order' => 'desc'
				);
		$related = get_posts($args); ?>
		
		
		
  • Articoli correlati

Analizziamo il codice:

global $post;
$posttags = wp_get_post_tags($post->ID);

Prima di tutto rendiamo globale la variabile $post per rendere disponibili i dati del post, mentre con la funzione wp_get_post_tags() recuperiamo i tag associati al post.

$tags = array();
$blacklist = array('blacklist');
foreach ($posttags as $t) {
	if(!in_array(strtolower($t->name),$blacklist)){
		$tags[] = str_replace(' ','-',$t->name);
	}
}

Verificato che ci sono tag associati al post, possiamo impostare un controllo per escludere dei tag specifici dal filtro per correlare i post. Per impostare i tag da escludere, aggiungere i termini desiderati nell’array $blacklist. Inoltre, nel ciclo dove si filtrano i tag da eslcudere, con la funzione str_replace() convertiamo i gli spazi bianchi dei tag contenenti più parole, in modo da avere lo slug del tag.

$ts = implode(",", $tags);

Creiamo una variabile $ts formattando i tag per la query,

$args = array(
		'numberposts' => 3,
		'tag'=> $ts,
		'exclude' => $post->ID,
		'orderby' => 'post_date',
		'order' => 'desc'
		);
$related = get_posts($args);

Creiamo una array per impostare i parametri della query e con la funzione get_posts() i post correlati. In questo esempio i post visualizzati sono 3, ma basta cambiare il valore di numberposts per visualizzare più o meno post correlati.

// Salviamo $post in una variabile temporanea
$post_TEMP = $post;

Verificato che ci siano post correlati, salviamo la variabile $post in una variabile temporanea, in modo da usare le funzioni native di WordPress per visualizzare le informazioni dei post correlati.

  • Articoli correlati

Questo è il codice che stampa a video l’elenco dei post correlati. In questo esempio, visualizziamo solo il titolo dei post correlati, ma basta richiamare le funzioni di WordPress per visualizzare le informazioni dei singoli post (es. the_author()).

// Reset $post
$post = $post_TEMP;
setup_postdata($post);

Infine resettiamo la variabile $post e il gioco è fatto.

Note: Puoi vedere il codice funzionante, alla fine di questo post.

{ 9 Commenti }

WordPress: soluzione all’errore dell’output del feed

xmlIl feed di WordPress, a volte visualizza un errore perché vengono stampati degli spazi bianchi prima della dichiarazione XML, invalidando così il file.

Il messaggio di errore visualizzato è:

XML Parsing Error: XML or text declaration not at start of entity

oppure, se stai usando il validatore di W3:

XML Parsing Error: XML declaration allowed only at the start of the document

Questo significa che prima del carattere < ci sono caratteri inaspettati (in questo caso degli spazi bianchi) che devono essere rimossi per una corretta dichiarazoine XML.

Cercando su internet una possibile soluzione non troppo invasiva, ho trovato un metodo semplice per risolvere il problema. Quello che bisogna fare è aggiungere una funzione nel processo di creazione del feed di WordPress che cancelli gli eventuali caratteri stampati prima della dichiarazione XML.

Il file di riferimento è: wp-includes/feed-rss2.php

Aprire il file con un editore di testo e, subito dopo il seguente codice, posizionato all’inizio del file

header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
$more = 1;

inserire il seguente codice:

$out = ob_get_contents();
$out = str_replace(array("\n", "\r", "\t", " "), "", $input);
ob_end_clean();

Ripetere questi passaggi per il feed dei commenti: feed-rss2-comments.php.

Note: si consiglia ripetere i passaggi precedenti per tutti i file che generano i feed: feed-rss2-comments.php, feed-rss.php, feed-rdf.php, feed-atom.php, feed-atom-comments.php.

Via w3it.org

{ Un Commento }

Pagina 4 di 7« Prima...345...Ultima »