Удаление параметров из URL в WordPress с remove_query_arg() – Полное руководство

Удаление параметров из URL с помощью функции remove_query_arg()

Функция remove_query_arg() в WordPress используется для удале��ия одного или нескольких параметров из строки запроса (query string) в URL. Давайте разберем, как она работает и как ее можно использовать.

Важно знать

  • Возвращаемое значение функции remove_query_arg() по умолчанию не экранируется. Это значит, что перед выводом ссылки стоит использовать функцию esc_url(), чтобы защититься от уязвимостей, таких как XSS-атаки.

Производительность

  • Использование remove_query_arg():
    • 1 раз — 0.000055 секунды (очень быстро)
    • 50,000 раз — 0.19 секунды (также быстро)
    • PHP: 7.1.5, WP: 4.8.2

Возвращаемое значение

Функция возвращает строку — новый URL с удаленными параметрами.

Как использовать

Функция remove_query_arg принимает два параметра:

remove_query_arg( $key, $query );
  • $key (обязательный параметр, строка или массив строк) — ключ(и) запроса, которые нужно удалить.
  • $query (необязательный параметр, по умолчанию false) — URL, из которого нужно удалить параметры. Если не указано, используется текущий URL.

Примеры использования

Пример 1: Удаление параметров из текущего URL

Предположим, вы находитесь на странице WordPress с URL:

http://www.example.com/client/?details=value1&type=value2&date=value3

Нам нужно удалить параметры details, type и date. Вот как это можно сделать:

$arr_params = array( 'details', 'type', 'date' );

echo esc_url( remove_query_arg( $arr_params ) ); 
// вывод: http://www.example.com/client/

Обратите внимание на использование функции esc_url() перед выводом ссылки.

Пример 2: Удаление нескольких параметров из URL

Допустим, мы передаем параметры запроса remove_recomend и post_id, обрабатываем их, а затем нам нужна ссылка без этих параметров:

// используем $_SERVER['REQUEST_URI'] и переданные параметры запроса

// удаляем ненужные параметры
$page_url = remove_query_arg( [ 'remove_recomend', 'post_id' ] );

// используем переменную $page_url без параметров
echo esc_url( $page_url ); 

Пример 3: Удаление параметров из указанного URL

Вот еще один пример, когда мы хотим удалить параметр hello из заданного URL:

$url = 'http://blog.example.com/2009/?hello=world&foo=bar';
echo remove_query_arg( 'hello', $url ); 
// вывод: http://blog.example.com/2009/?foo=bar

Код функции remove_query_arg()

Вот как выглядит реализация функции remove_query_arg() в WordPress:

function remove_query_arg( $key, $query = false ) {
    if ( is_array( $key ) ) { // Удаляем несколько ключей.
        foreach ( $key as $k ) {
            $query = add_query_arg( $k, false, $query );
        }
        return $query;
    }
    return add_query_arg( $key, false, $query );
}

Заключение

Функция remove_query_arg() — это мощный инструме��т для работы с URL в WordPress. Она позволяет легко управлять параметрами запроса и поддерживать ваши ссылки чистыми и безопасными. Используйте её с умом, и ваш сайт станет более безопасным и функциональным!

Leave a Reply

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