無聊做了個www.jiazhuangma.com,技術不過關寫不好后臺,就想直接讀wordpress里的數據。做ajax讀后臺數據時在網上隨便搜了一段代碼使用wordpress $wpdb類讀mysql數據庫,就是這么一隨便,搜到了別人的去頭去尾的code,開始了我的改錯之旅。
主要問題有:
1,non-object
2,json中漢字,/被轉碼
3,chrome可以正常訪問php文件,ie顯示http 404,ajax時頭部顯示404,但是響應正文正確,是我想要的json。
先貼上網上搜到的代碼:
<?phpglobal $wpdb;$a = $wpdb->get_results(“SELECT ID,post_title FROM wp_posts ″);echo json_encode($a );?>
這時會報錯,non-object;
網上有人說可以添加require_once(‘wp-blog-header.php');那么恭喜你中獎了,你會發現chrome可以正常訪問php文件,ie顯示http 404,ajax時頭部顯示404,但是響應正文正確。
修改為require_once(‘wp-config.php');后正常,
這時得到的json是轉碼后的需要將echo json_encode($a );
修改為echo str_replace(“///”, “/”, json_encode($a,JSON_UNESCAPED_UNICODE ));結果才正確
最終結果:
<?phprequire_once(‘wp-config.php');global $wpdb;$a = $wpdb->get_results(“SELECT wp_posts.ID,wp_posts.post_title,wp_posts.guid FROM wp_posts inner join wp_term_relationships on wp_term_relationships.object_id=wp_posts.ID where wp_term_relationships.term_taxonomy_id=3 ORDER BY wp_term_relationships.object_id DESC LIMIT 5″);echo str_replace(“///”, “/”, json_encode($a,JSON_UNESCAPED_UNICODE ));?>
以上就是小編給大家介紹的使用wordpress的$wpdb類讀mysql數據庫做ajax時出現的問題該如何解決,希望對大家有所幫助。
新聞熱點
疑難解答
圖片精選