Функция sanitize_sql_orderby() в WordPress: зачем и как использовать

Функция 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *