基于自定义字段连接到另一个WP安装和抓取帖子

时间:2011-02-12 作者:Ann

设置如下:两个单独的wordpress安装在两个单独的域上(不是多站点)

这就是我想做的基于自定义字段从数据库查询帖子并在另一个Wordpress安装中显示它们

这就是我所做的:在WP 1 install for custom字段中创建了一个metabox在WP 2 install中创建了一个模板,并使用以下查询

$hbldb=新wpdb(\'username\',\'password\',\'dbasename\',\'localhost\');

$结果=$hbldb->获取结果(query\\u posts(\'meta\\u key=dbt\\u ffhpost&;meta\\u value=on\');

结果:404-你要找的东西不在这里。

我知道问题在查询中,只是不知道是什么。我是否需要查询特定的表、行、字段等?

非常感谢您的帮助。

1 个回复
SO网友:goldenapples

这个query_posts() 首先在当前站点上评估数据库内的调用,并返回一个数组,该数组可能为空,因为它不是您希望查询的数据库。然后,将该立柱阵列传递到外部$hbldb->get_results() 调用,这会给您带来错误,因为它不是有效的MySQL查询语法。

如果要处理外部数据库上的原始SQL查询,则必须在调用中写入整个查询get_results()... 例如,类似这样:

$results = $hbldb->get_results( "SELECT * FROM 
                                {$hbldb->posts} posts 
                                JOIN {$hbldb->postmeta} meta
                                ON meta.post_id = posts.ID
                                WHERE meta.meta_key =\'dbt_ffhpost\'
                                AND meta.meta_value = \'on\'",
                                ARRAY_A );
*(已编辑:添加了ARRAY\\u参数以使此查询返回数组。)*

我认为一定有更好的方法来实现这一点,但我还不能完全理解如何创建与辅助wpdb对象相关的新WP\\U查询对象,或者即使这是可能的,所以我能提供的最好帮助是原始SQL。

一旦得到这些结果,就可以这样循环:

<?php 

if ($results) : 

foreach ($results as $post) :

echo \'<h2>\'.apply_filters( \'the_title\', $post->post_title ).\'</h2>\';
echo \'<h4>\'.apply_filters( \'the_author\', $post->post_author ).\'</h4>\';
echo apply_filters( \'the_content\', $post->post_content );

endforeach; endif;

?>
请注意,使用此方法很难从第二次WP安装中获得更高级的数据。我甚至没有处理获取永久链接等问题。如果您需要从其他WP安装中获取更多数据,您最好从该站点设置RSS提要,并使用插件或basic在第一个站点上显示该RSS提要中的项目fetch_feed() 密码

结束

相关推荐

Corrupt Wordpress Database

我认为这是最奇怪的文字印刷问题。一个拥有大量帖子数据库的客户网站已经有了自己的想法。前一分钟一切似乎都很好,接下来的帖子、类别和标签都不见了。此时仪表板告诉我9个类别中有2309个帖子,但当我单击admin中的categories链接时,列表中没有任何帖子。我可以在admin中看到所有帖子,但尽管它们过去被分配到类别并列出标签,但现在它们都“未分类”,没有标签。很明显,wordpress数据库在某种程度上已经损坏,但从哪里开始尝试修复呢!?以下是我迄今为止测试的内容:插件–我关闭了所有当前的插件。主题–我