【发布时间】:2014-05-09 19:59:25
【问题描述】:
我用 wordpress 和 mysql 开发了一个网站。该设置是本地的。在我托管我的网站(在一所大学)的服务器上,他们使用 sqlite。我使用这个插件使 wordpress 与 Sqlite 一起工作:
http://wordpress.org/plugins/sqlite-integration/
到目前为止一切正常。当我尝试在本地执行元查询时,一切正常(mysql),我得到了我预期的结果,但在服务器上查询没有返回任何帖子。
数据库和帖子元的内容相同。
代码:
function rlp_get_posts($post_type = 'post', $num = 10, $offset = 0){
$args = array(
'posts_per_page' => $num,
'offset' => $offset,
'orderby' => 'id',
'order' => 'ASC',
'post_type' => $post_type,
'meta_query' => array(
array(
'key' => 'rlp_native_age',
'value' => array( 18, 78 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
'post_status' => 'publish',
'suppress_filters' => false
);
return new WP_Query( $args );
}
WP_Query 请求:
本地
[request] => SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND wp_posts.post_type = 'native' AND ((wp_posts.post_status = 'publish')) AND ( (wp_postmeta.meta_key = 'rlp_native_age' AND CAST(wp_postmeta.meta_value AS SIGNED) BETWEEN '18' AND '78') ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date ASC LIMIT 0, 20
服务器
[request] => SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND wp_posts.post_type = 'native' AND ((wp_posts.post_status = 'publish')) AND ( (wp_postmeta.meta_key = 'rlp_native_age' AND CAST(wp_postmeta.meta_value AS SIGNED) BETWEEN '18' AND '78') ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date ASC LIMIT 0, 20
请求似乎相同。目前我无权访问数据库来执行我自己的 SQL 查询来解决问题
编辑
当我进行 tax_query 时,在本地和服务器上一切正常。
代码:
function rlp_get_posts($post_type = 'post', $num = 10, $offset = 0){
$args = array(
'posts_per_page' => $num,
'offset' => $offset,
'orderby' => 'id',
'order' => 'ASC',
'post_type' => $post_type,
'tax_query' => array(
array(
'key' => 'sex',
'field' => 'id',
'terms' => array(71)
)
)
'post_status' => 'publish',
'suppress_filters' => false
);
return new WP_Query( $args );
}
WP_Query 服务器请求(同本地):
[request] => SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (71) ) AND wp_posts.post_type = 'native' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date ASC LIMIT 0, 20
【问题讨论】: