The incompatible_sql_modes WordPress PHP Filter allows you to modify the list of incompatible SQL modes that should be excluded.
Usage
add_filter('incompatible_sql_modes', 'my_custom_incompatible_sql_modes');
function my_custom_incompatible_sql_modes($incompatible_modes) {
// your custom code here
return $incompatible_modes;
}
Parameters
$incompatible_modes (array)– An array of incompatible SQL modes.
More information
See WordPress Developer Resources: incompatible_sql_modes
Examples
Remove a specific SQL mode from the list
Remove the ONLY_FULL_GROUP_BY mode from the list of incompatible modes.
add_filter('incompatible_sql_modes', 'remove_only_full_group_by');
function remove_only_full_group_by($incompatible_modes) {
$key = array_search('ONLY_FULL_GROUP_BY', $incompatible_modes);
if ($key !== false) {
unset($incompatible_modes[$key]);
}
return $incompatible_modes;
}
Add a new SQL mode to the list
Add the NO_ZERO_DATE mode to the list of incompatible modes.
add_filter('incompatible_sql_modes', 'add_no_zero_date_mode');
function add_no_zero_date_mode($incompatible_modes) {
$incompatible_modes[] = 'NO_ZERO_DATE';
return $incompatible_modes;
}
Clear the list of incompatible SQL modes
Clear the list of incompatible modes entirely, allowing all SQL modes.
add_filter('incompatible_sql_modes', 'clear_incompatible_sql_modes');
function clear_incompatible_sql_modes($incompatible_modes) {
return array();
}
Replace the entire list of incompatible SQL modes
Replace the list of incompatible modes with a custom list.
add_filter('incompatible_sql_modes', 'replace_incompatible_sql_modes');
function replace_incompatible_sql_modes($incompatible_modes) {
$custom_modes = array('STRICT_TRANS_TABLES', 'NO_ZERO_IN_DATE');
return $custom_modes;
}
Conditionally modify the list of incompatible SQL modes
Modify the list of incompatible modes based on a condition, such as the current user’s role.
add_filter('incompatible_sql_modes', 'conditionally_modify_sql_modes');
function conditionally_modify_sql_modes($incompatible_modes) {
if (current_user_can('manage_options')) {
$incompatible_modes[] = 'NO_ENGINE_SUBSTITUTION';
}
return $incompatible_modes;
}