将子站点内容拉入特定页面

时间:2012-11-12 作者:Bob Tway

我正在制作一个学校网站。该设计要求收集大量静态页面,但每个类都有一个博客,每隔几天更新一次。

我对WordPress或PHP一无所知(虽然我在其他平台上有开发经验),但我得到了基于自定义主题的站点静态部分,没有太多问题。

我为每个班级的博客设置了一个页面,但我真的希望作者使用博客引擎,而不仅仅是不断更新页面。为了实现这一点,我打开了基于URL的多站点,并在每个类的子站点中设置了一些博客。

然而,我现在被困在如何制作标准索引上。我为静态页面创建的php显示博客内容,而不是站点的某些部分。

我还想添加一个右侧小部件,它将显示博客中最近的三个条目,而不管它们来自哪个类。

理想情况下,我还需要为博客的页面标题添加日期,但不需要为站点上的静态页面添加日期。

有人帮忙吗?

编辑:索引。请求的php代码

<div id="column-center">
     <?php if (have_posts()) : while (have_posts()) : the_post();?>
     <p style="font-size:22px;"><?php the_title();?></p>
     <hr class="hr-red" />
     <div style="font-size:13px;">
     <?php the_content(); ?>
     </div>
     <?php endwhile; endif; ?>
     <?php edit_post_link(\'Edit this entry.\', \'<p>\', \'</p>\'); ?>
</div>

1 个回复
SO网友:brasofilo

这可以通过插件来实现
通过分析和修改此类插件的代码,可以构建一个定制的、手工编码的解决方案。

正在搜索;multisite + widget"E;,我找到了一个感兴趣的插件。

Multisite Posts

在多站点设置中从另一个子站点获取帖子。您还可以将插件集成到主题文件中,非常有效。为功能使用提供快捷代码和小部件。国际化就绪。

似乎代码编写得很好,是最新的WordPress版本(3.4.2),可以解决index.php 问题(通过短代码)和小部件。

需要注意的是,每个站点都必须手动添加(每个站点1个短代码/小部件)

与插件一起使用的自定义短代码自动生成手动键入的短代码列表。

add_shortcode( \'blogs_posts\', \'wpse_72355_blogs_posts\' );

function wpse_72355_blogs_posts( $attr ) 
{
    global $wpdb;
    $blogs = $wpdb->get_results($wpdb->prepare("
        SELECT blog_id
        FROM {$wpdb->blogs}
        WHERE site_id = \'{$wpdb->siteid}\'
        AND spam = \'0\'
        AND deleted = \'0\'
        AND archived = \'0\'
        AND mature = \'0\' 
        AND public = \'1\'
    "));

    $the_blogs_posts = \'\';
    
    foreach ($blogs as $blog) 
    {
        $details = get_blog_details( $blog->blog_id );
        
        $the_blogs_posts .= \'From the site: <a href="\' 
            . $details->siteurl . \'">\' 
            . $details->blogname . \'</a><br>\';
            
        $the_blogs_posts .= do_shortcode( 
            \'[multisite_posts no="\' . $attr[\'no\'] 
            . \'" site_id="\' . $blog->blog_id . \'"]\' 
            );
    }
    return $the_blogs_posts; 
}

foreach ($blogs as $blog) 可以适应这样的工作:

$original_blog_id = get_current_blog_id();

foreach ($blogs as $blog) 
{
    switch_to_blog( $blog->blog_id );

    // http://codex.wordpress.org/Function_Reference/get_posts
    $posts_array = get_posts( $args ); 

    // Iterate through $posts_array and build the output
}
switch_to_blog( $original_blog_id );

结束

相关推荐

向php数组迭代添加子快捷码

我有一个短代码结构:[component] [type1]some content[/type1] [type2]some more content[/type2] ... [typeN]some other content[/typeN] [/component] 我想要$content 存储在数组中的子短码的。我现在所做的是,在他们的作用下,我通过了$content 创建一个全局变量,然后用它们创建一个数组,但这不是很优雅。此外