Archived post from my old blog (2007–2016), restored from the Wayback Machine. It is published as written at the time, in Italian; tools and versions are likely out of date.
WordPress multisite, raccogliere i post da più blog
Dalla versione 3 di wordpress esiste la possibilità di gestire in maniera nativa vari siti, mettendo di fatto a disposizione un sistema per creare portali con facilità
Ogni sotto sito va a creare le proprie tabelle all’interno del database, modificando il prefix
Il codice che segue è un semplice snippet che permette di recuperare i post di tutti i sottositi da un qualsiasi punto arbitrario
if(isset($blog_id) && $blog_id != 1){
$tmpPosts = Array();
$blogsToQuery = Array(2,3); <== qui è hardcoded per fretta, da sostituire con un config
foreach($blogsToQuery as $v){
if($v != $blog_id){
$wpdb->blogid = $v;
$wpdb->prefix = "wp_$v"; <== il suffisso va scelto quando si installa, il vostro può essere diverso
}
$args = array(
'post_type' => 'post',
'blog_id' => $v
);
$cross_blog_query = $wpdb->get_results("SELECT ID, post_title, guid FROM wp_".$v."_posts WHERE post_status = 'publish' ");
$tmpPosts = array_merge($tmpPosts,$cross_blog_query);
}
foreach ($tmpPosts as $c => $v){
$htmlout= '<div>
<a href="'.$v->guid.' title="'.htmlentities($v->post_title).'">Continua a leggere ‘'.$v->post_title.'’</a>
<div>'.$v->post_title.'</div><div>CODICE CORSO</div></div> ';
echo $htmlout;
}
}
Ecco fatto 🙂
← Archive