Как я могу отображать сообщения с других сайтов в многопользовательской настройке WordPress?

У меня есть небольшая сеть настроек сайтов с многопользовательской функцией WordPress 3.0. Я хотел бы создать еще один сайт, который вытаскивает определенные сообщения из различных других сайтов для отображения. Этот новый сайт "хаба" будет выглядеть как отдельный сайт для пользователя (с сопоставлением доменов), но его содержимое поступает из сообщений с других сайтов.

Как я могу получить сообщения с другого сайта в многопользовательской настройке WordPress? Могу ли я запрашивать сообщения, основанные на имени сайта? Конечным результатом должен быть сбор сообщений с разных сайтов, отсортированных по дате.

Спасибо за вашу помощь.

Ответ 1

У меня была аналогичная проблема, когда я хотел получать сообщения из одного блога и отображать их на другом. Я придумал следующее решение, которое вы можете немного изменить, чтобы удовлетворить ваши потребности, если нужно

<?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 ?>

Я также ограничиваю количество слов, которые выставляются, если вы не хотите, чтобы эта функция была просто использована

$post->post_title; 

Надеюсь, что это поможет.

Ответ 2

Было бы сложно настроить прямые вызовы базы данных. Вы можете запрашивать сообщения с любого сайта в установке с помощью объекта $wpdb. См. Отображение сообщений с помощью пользовательского запроса выбора для получения информации об использовании пользовательского запроса к базе данных, но имейте в виду, что вместо выбора из $wpdb- > posts вам понадобится доступ к определенной таблице сайтов, в которой вы хотите размещать сообщения. При установке Wordpress 3 по умолчанию это будет wp_12_posts, где 12 - это идентификатор сайта. Идентификатор можно найти в таблице wp_blogs или посмотреть столбец идентификатора в разделе "Сайты" меню администратора.