如何查询WordPress子域的博客帖子?

时间:2011-11-15 作者:Ezhil

我正在使用WordPress 3.2.1多用户。我需要在主页中显示来自特定子域的帖子,例如:http://mysite.com/sub-blog. 我需要在我的主页上显示来自子博客的帖子。

他们是否有任何特殊代码可以从特定的博客中查询?

2 个回复
SO网友:chrisguitarguy

您可能需要为此编写一些自定义SQL。下面是一个示例函数,可以实现这一点。这有点不安全,因为我们不能使用$wpdb->准备将blog\\u id放入(它包含任何插入引号的内容)。

<?php
function wpse33779_get_posts_from_blog( $blog_id = 1 )
{
    // is this is the current blog, just get posts...
    if( 1 === $blog_id )
    {
        return get_posts();
    }
    else 
    {
        // make sure this is a number.
        $blog_id = absint( $blog_id );
    }

    // did absint kill our blog id?
    if( ! $blog_id ) return array();

    global $wpdb;
    $a = $wpdb->prepare( "SELECT * from {$wpdb->base_prefix}{$blog_id}_posts WHERE \'post\' = post_type AND \'publish\' = post_status" );
    $posts = $wpdb->get_results( $a );
    return $posts;
}
我不擅长编写SQL,但你明白了。您可以将该功能充实到get_posts

您也可以使用switch_to_blog

<?php
switch_to_blog( $blod_id );
$posts = get_posts();
// do stuff with posts
restore_current_blog();
也就是说,switch_to_blog 这可能不是个好主意。真的很慢。

SO网友:Justice Is Cheap

您可能会发现有两个插件对此很有用:

ThreeWPBroadcastWP MU Sitewide tags

结束

相关推荐

Multisite questions

关于WP multisite,我有几个问题,希望广泛使用过它的人能够提供帮助:是否可以在多个不同的域上管理多个WP站点</如何管理插件,有些插件我想在所有网站上使用,但有些插件我只想在某些网站上使用。还有,每个插件设置会发生什么变化,它们是否会全面推出</更新-如何对每个站点的插件和WP本身进行管理