我已经搜索过了,找不到任何适合我具体问题的东西,但如果已经有人问过我,我深表歉意。
我有一个公共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);
这听起来对吗,它没有从公共网站上拉任何帖子?
最合适的回答,由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功能中失败&;我建议坚持直接查询方法