我在长搜索查询中使用query_posts。 我的问题:
<?php $args = array(
'tag_slug__in' => $cat_id,
'posts_per_page' => 15,
'paged' => $page,
'meta_query' => array(
array(
'key' => 'Пол',
'value' => $value_sex,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Английский',
'value' => $english,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Французский',
'value' => $france,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Немецкий',
'value' => $germany,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Итальянский',
'value' => $italy,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Испанский',
'value' => $spain,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Китайский',
'value' => $chine,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Длина волос',
'value' => $hair_length,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Цвет волос',
'value' => $hair_color,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Удобные дни работы',
'value' => $value_days,
'compare' => 'EXISTS',
'type' => 'CHAR',
),
array(
'key' => 'Удобное время работы',
'value' => $value_time,
'compare' => 'IN',
'type' => 'CHAR',
),
array(
'key' => 'Рост (см)',
'value' => array( $value_height, $value_height_max ),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
array(
'key' => 'Размер одежды',
'value' => array( $value_dress, $value_dress_max ),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
array(
'key' => 'Размер бюста',
'value' => array( $value_bust, $value_bust_max ),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
)
);
?>
<?php query_posts($args); ?>
这个代码在新安装的wordpress中很好用,但旧网站崩溃了。 我有“查询执行中断”,“查询期间丢失与MySQL服务器的连接”和“MySQL服务器已经消失”错误.log 俄语中meta_query的关键和价值。对不起我的英语。请帮忙。
答案 0 :(得分:1)
这可能是一个超时问题,在这种情况下你应该修改你的my.cnf,或者你的mysql可能由于负载过大而变得没有响应,在这种情况下提高超时限制对你没有帮助。
优化wordpress默认函数的空间不大,但您可以使用$ wpdb-&gt; query()方法编写自己的查询,也可以查看帖子元数据的当前db索引。
答案 1 :(得分:1)
将此行放在query_posts之后
<?php wp_reset_query(); ?>