2010-10-07 11 views
11

Ho una piccola rete di siti configurati con la funzionalità multisito di WordPress 3.0. Vorrei creare un altro sito che mostri determinati post dai vari altri siti da visualizzare. Questo nuovo sito "hub" sembrerebbe un proprio sito separato per l'utente (con mappatura del dominio), ma il suo contenuto proviene dai post degli altri siti.Come posso visualizzare i post degli altri siti in una configurazione multisito di WordPress?

Come posso ottenere post da un altro sito in una configurazione multisite di WordPress? Posso interrogare i post in base al nome del sito? Il risultato finale deve essere una raccolta di post di diversi siti ordinati per data.

Grazie per il vostro aiuto.

risposta

2

Questo non sarebbe terribilmente difficile da configurare con le chiamate dirette del database. Puoi interrogare i post di qualsiasi sito sull'installazione con l'oggetto $ wpdb. Vedere Displaying Posts Using a Custom Select Query per informazioni sull'utilizzo di una query di database personalizzata, ma tieni presente che invece di selezionare da $ wpdb-> post dovrai accedere alla tabella del sito specifico di cui desideri pubblicare i post. Su un'installazione di Wordpress 3 predefinita, questo sarebbe wp_12_posts, dove 12 è l'id del sito. L'id può essere trovato nella tabella wp_blogs o guardando la colonna ID nella sezione Sites del menu admin.

17

ho avuto il problema simile in cui volevo arrivare messaggi da un blog e visualizzarla su un altro mi si avvicinò con la seguente soluzione che si potrebbe modificare leggermente per soddisfare le vostre esigenze, se necessario

<?php 
global $switched; 
switch_to_blog(2); //switched to 2 

// Get latest Post 
$latest_posts = get_posts('category=-3&numberposts=6&orderby=post_name&order=DSC'); 
$cnt =0;?> 
<ul> 
    <?php foreach($latest_posts as $post) : setup_postdata($post);?> 
    <li> 
     <a href="<?php echo get_page_link($post->ID); ?>" title="<?php echo $post->post_title; ?>"><?php echo short_title('...', 7); ?></a> 
    </li>         
    <?php endforeach ; ?> 

<?php restore_current_blog(); //switched back to main site ?> 

I 'M anche limitare la quantità di parole che viene fuori putt se non si desidera che questa funzione semplice utilizzo

$post->post_title; 

Speranza che aiuta.

+0

Si dovrebbe anche leggere il [get_posts docs] (https://codex.wordpress.org/Function_Reference/setup_postdata); ci sono alcuni buoni esempi anche lì. Dai un'occhiata alla sezione degli esempi. – mhulse

+0

Non conoscevo [http://codex.wordpress.org/WPMU_Functions/switch_to_blog] switch_to_blog(), grazie. – bjoster

Problemi correlati