从同一服务器上的另一个WordPress安装拉取帖子

时间:2012-10-24 作者:zilj

我已经搜索过了,找不到任何适合我具体问题的东西,但如果已经有人问过我,我深表歉意。

我有一个公共Wordpress安装和一个只有成员的子域。这是因为它们在功能上都是非常不同的站点,所以在主站点中创建仅限成员的帖子不是一个选项。在子域上,将添加新的高级内容,但我还需要从公共站点中获取帖子。

我已经查看了feed URL,但因为我在子域上实现了非常具体的搜索自定义,所以我需要这些帖子可以搜索。例如,我有一个额外的帖子插件“post countries”,显示与帖子相关的国家。这仍然是feed-url能够处理的吗,或者还有其他选择吗?

谢谢

EDIT这是我当前私有搜索的设置方式,我刚刚粘贴了相关代码。

$args = array(
\'post_type\' => \'post\', 
\'show_posts\' => \'10\', 
\'paged\' => $paged
);

$the_query = new WP_Query($args); 

<?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?>
    // The output
在我自己的站点中,私有数据库结果存储在$the_query 公共站点结果存储在$allsearch, 这意味着我应该添加以下内容,使我的循环成为香草。

$the_query->posts=array_merge($the_query->posts,$allsearch);
$the_query->post_count=count($the_query->posts);
这听起来对吗,它没有从公共网站上拉任何帖子?

1 个回复
最合适的回答,由SO网友:Mridul Aggarwal 整理而成

如果是同一个数据库,则可以使用全局$wpdb变量轻松编写查询。如果是单独的数据库,请创建wordpress wpdb类的另一个实例;向其写入查询$wpdb2 = new wpdb( $user, $pass, $db, $host );

在任何情况下,都需要知道数据库表前缀

更新您可以采用任何一种方式,要么让公共站点将数据插入到两个数据库,要么让子域从自己的数据库和;公共数据库。假设你想要第二种方法

在这种情况下,您不希望公共服务器做任何事情,所以让我们把它放在一边。现在在子域的模板文件中,您已经有了一些代码。在那里,您将使用上面的代码和公共服务器的数据库详细信息创建wpdb类的新实例。然后,您将使用此对象向公共数据库写入查询。查看codex 有关如何执行此操作的详细信息

如果您想采用第一种方法,那么您也可以采用类似的方法,只是将代码添加到公共页面的代码中

您也可以这样做来使用wordpress函数

global $wpdb;
$temp = $wpdb;
$wpdb = new wpdb( $user, $pass, $db, $host );
// make the query here
$wpdb = $temp;
虽然这将在某些wordpress功能中失败&;我建议坚持直接查询方法

结束

相关推荐

在页面模板内显示特定帖子的Posts循环?

我想创建一个模板,用于选择要在WordPress页面上显示的5篇特定帖子。基本上,我必须能够查询5个确切的帖子,以显示在Wordpress页面上,使用WP页面模板和自定义字段来选择准确的5个帖子ID。编辑:我有这个代码感谢这个网站。但现在我需要能够通过自定义字段添加页面id数组。这能做到吗?编辑2:实际上代码并没有显示数组中的帖子,而是显示主页上的最新帖子。嗯,嗯。<?php $post_id = array(483,454,376); $posts = get_posts( $p