我試圖從其他數據庫使用wordpress訪問自定義帖子。要做到這一點,我已經改變了當前$wpdb
全局變量:通過新的wpdb更改數據庫後使用wp_query
$wpdb = new wpdb($user, $pass, $db, $host);
$wpdb->show_errors();
這並不顯示任何錯誤,但是當我嘗試使用WP_Query
:
$args = array('post_type'=>'produtos');
$newloop = new WP_Query($args);
我得到以下錯誤:
WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '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()
˚F我可以達到我想要的:
$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'");
}
我正在尋找一個優雅的解決方案來解決這個問題。
你爲什麼會覆蓋'$ wpdb'?你究竟想要達到什麼目的?什麼是更大的圖片,這使得它有必要? –
我想在移動網站的主網站(使用自己的wordpress安裝子域)中使用帖子類型'produtos'。 我在這[線程](http://wordpress.stackexchange.com/questions/100666/how-can-i-connect-to-another-wp-database-and-use-wp-query)閱讀,我應該覆蓋$ wpdb,因爲WP_Query使用它。 –
我不確定,但你的兩個wordpress是相同的版本 –