Функция sanitize_sql_orderby() в WordPress
Функция sanitize_sql_orderby()
используется для проверки корректности строки, которая служит частью SQL-запроса для сортировки данных. Она была введена в версии WordPress 2.5.1.
Зачем нужна эта функция?
Функция помогает убедиться, что строка, которую вы используете для сортировки, действительно соответствует правилам SQL. Это важно для того, чтобы избежать ошибок и сделать ваш запрос безопасным.
Функция принимает одну или несколько колонок с указанием порядка сортировки (по возрастанию или убыванию). Примеры:
'column_1'
'column_1, column_2'
'column_1 ASC, column_2 DESC'
Также она может принимать строку 'RAND()'
, которая используется для случайной сортировки.
Возвращаемое значение
Функция возвращает:
- Строку (если строка корректна)
false
(если строка некорректна)
Как использовать функцию?
Вызывая функцию, передайте ей строку с порядком сортировки, которую нужно проверить:
$orderby = sanitize_sql_orderby( $orderby );
Где переменная $orderby
— это строка, которую вы хотите проверить.
Пример использования
Вот пара примеров, как эта функция работает:
Корректный пример
$orderby = ' col1 ASC ';
$orderby = sanitize_sql_orderby( $orderby ); // результат: " col1 ASC "
Некорректный пример
$orderby = sanitize_sql_orderby( ' col-1 ASC ' ); // результат: bool(false)
Во втором примере функция возвращает false
, потому что название колонки содержит недопустимый символ (-
).
Код функции
Вот как выглядит реализация функции sanitize_sql_orderby()
:
function sanitize_sql_orderby( $orderby ) {
if ( pregmatch( '/^s*(([a-z0-9]+|MARKDOWN_HASH9fbd42b1bcf126509c9785d82188671cMARKDOWNHASH
)(s+(ASC|DESC))?s(,s(?=[a-z0-9`])|$))+$/i', $orderby ) || preg_match( '/^sRAND(s)s*$/i', $orderby ) ) {
return $orderby;
}
return false;
}
Связанные функции
Функция sanitize_sql_orderby()
является частью более широкой группы функций в WordPress, которые также очищают и проверяют данные. Вот некоторые из них:
sanitize_email()
sanitize_file_name()
sanitize_html_class()
sanitize_key()
sanitize_meta()
sanitize_url()
sanitize_user()
Эти функции помогают обеспечить безопасность и корректность данных, используемых в различных местах вашего сайта на WordPress.