我正在尝试使用 wordpress 从其他数据库访问自定义帖子。为此,我更改了当前的$wpdb
全局变量:
$wpdb = new wpdb( $user, $pass, $db, $host );
$wpdb->show_errors();
这没有显示任何错误,但是当我尝试使用时WP_Query
:
$args = array('post_type'=>'produtos');
$newloop = new WP_Query($args);
我收到以下错误:
WordPress 数据库错误:[您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 'FROM WHERE 1=1 AND .post_type = 'produtos' AND (.post_status = 'publish' OR .' at line 1] 附近使用
SELECT SQL_CALC_FOUND_ROWS .ID FROM WHERE 1=1 AND .post_type = 'produtos' AND (.post_status = 'publish' OR .post_author = 1 AND .post_status = 'private') ORDER BY .post_date DESC LIMIT 0, 10
如果我使用$wpdb->get_results()
和$wpdb->get_var()
功能,我可以实现我想要的:
$wpdb = new wpdb( $user, $pass, $db, $host );
$rows = $wpdb->get_results("SELECT * FROM wp_posts where post_type='produtos' AND post_status='publish'");
foreach ($rows as $produto) {
$id = $produto->ID;
$title = $produto->post_title;
$valor = $wpdb->get_var("SELECT meta_value FROM wp_postmeta WHERE meta_key = 'preco' AND post_id = $id");
$url_id = $wpdb->get_var("SELECT meta_value from wp_postmeta where post_id = $id AND meta_key='_thumbnail_id'");
}
我正在寻找一个优雅的解决方案来解决这个问题。