2017-12-05 wordpress

 

テーブルの照合順序が utf8_general_ci とかだと、メタキーを大文字小文字を区別しないで保存してしまうようなので、
以下のように functions.php に記載
BINARY 演算子を使うと大文字小文字を区別する模様

/**
 * メタ情報を保存時、キーの大文字小文字を区別して保存
 */
add_filter('query', 'change_query_case_discrimination');

function change_query_case_discrimination($sql) {
    if (strpos($sql, 'UPDATE') === false) {
        return $sql;
    }
    if (strpos($sql, 'meta_value') === false) {
        return $sql;
    }
    $sql = str_replace("`meta_key`", "BINARY `meta_key`", $sql);
    return $sql;
}

 

Categorised in: