我有一个使用WordPress 3.0的多站点功能设置的小型网站网络。我想创建另一个站点,从其他各个站点拉出某些帖子来显示。这个新的“中心”网站看起来像是自己的独立网站(使用域名映射),但其内容来自其他网站的帖子。
如何从WordPress多站点设置中的其他站点获取帖子?我可以根据网站名称查询帖子吗?最终结果必须是按日期排序的不同网站的帖子集合。
感谢您的帮助。
答案 0 :(得分:17)
我有类似的问题,我希望从一个博客上获取帖子并将其显示在另一个博客上我提出了以下解决方案,您可以根据需要稍微修改以满足您的需求
<?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;
希望它有所帮助。
答案 1 :(得分:2)
使用直接数据库调用进行设置并不是非常困难。您可以使用$ wpdb对象从安装的任何站点查询帖子。有关使用自定义数据库查询的信息,请参阅Displaying Posts Using a Custom Select Query,但请注意,您需要访问要从中发帖的特定网站表,而不是从$ wpdb-&gt;帖子中进行选择。在默认的Wordpress 3安装中,这将是wp_12_posts,其中12是站点ID。可以在wp_blogs表中找到该ID,也可以查看管理菜单的“站点”部分中的ID列。