获取网络博客帖子的永久链接

时间:2011-04-18 作者:Pippin

我正在尝试编写一个函数,允许我指定一个帖子ID和一个博客ID,然后让它返回博客帖子的永久链接和标题。

我需要这是有效的,因为该函数将在foreach循环中使用,这可能会导致该函数运行50次以上。

有什么想法吗?

2 个回复
SO网友:Sterling Hamilton

这听起来很简单。

使用:http://codex.wordpress.org/Function_Reference/switch_to_blog

要返回,请使用:

restore_current_blog();
这允许您从一个站点切换到另一个站点。

然后:http://codex.wordpress.org/Function_Reference/get_permalink

我的假设是,您同时拥有Blog ID和Post ID。

如果是这样的话,使用这两个函数应该可以解决您的问题。

SO网友:strangerpixel

根据上面的建议,我选择了这个:

$html = \'<ul>\';
foreach ( $recent_across_network as $post ) {

    switch_to_blog( $post->blog_id );

    $postURI = get_permalink( $post->ID );          
    $html .= \'<li><a href="\' . $postURI . \'">\' . $post->post_title . \'</a></li>\';

    restore_current_blog();
}
$html .= \'</ul>\';
在哪里$recent_across_network 是跨多站点网络的最近帖子列表,使用Transients API进行缓存。有一个related tutorial here.

您也可以这样做:

$postURI = get_blog_permalink( $post->blog_id, $post->ID );
而不是switch_to_blog() / restore_current_blog() - 不确定哪个更有效?

结束

相关推荐

导入到WordPress MultiSite时禁用HTML过滤

我正在迁移到WordPress多站点实例的许多站点都在帖子中嵌入了视频和iFrame。我宁愿禁用WordPress功能,在导入时去掉嵌入的内容,而不是将每篇文章转换为犹太教式的视频嵌入方式。编辑帖子时禁用剥离是as simple as disabling the kses filter. 不幸的是,我不知道导入帖子需要禁用什么。目前我怀疑wp\\u insert\\u post()方法,但没有缩小过滤器的范围。有什么想法吗?Update: 这是特定于WordPress Multisite的。导入到单个Wo