0

我在长搜索查询中使用 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 中运行良好,但旧站点崩溃。我在 error.log 中出现“查询执行被中断”、“在查询期间丢失与 MySQL 服务器的连接”和“MySQL 服务器已消失”错误。俄语 meta_query 中的键和值。对不起我的英语。请帮忙。

链接到 error.log

4

2 回答 2

1

这可能是一个超时问题,在这种情况下你应该修改你的 my.cnf,或者你的 mysql 由于负载过大而变得无响应,在这种情况下提高超时限制对你没有帮助。

优化 wordpress 默认函数的空间不大,但您可以使用 $wpdb->query() 方法编写自己的查询,也许可以查看帖子元数据的当前数据库索引。

于 2013-09-28T23:14:53.213 回答
1

将此行放在 query_posts 之后

<?php wp_reset_query(); ?>
于 2013-09-28T23:31:13.657 回答