Описание mod_rewrite_rules
— Filter
Хук mod_rewrite_rules позволяет изменять правила перезаписи URL в WordPress. Он срабатывает на этапе инициализации перезаписи, когда создаются правила для обработки пользовательских запросов, и позволяет добавлять или изменять правила маршрутизации
Примеры использования
Пример добавления кастомного правила перезаписи для пользовательского поста:
add_filter('mod_rewrite_rules', function($rules) {
$new_rule = 'example/(.*) /index.php?p=$matches[1]';
return $new_rule . "
" . $rules;
});
Это правило позволяет обрабатывать URL вида example/123 как запрос к посту с ID 123
Пример изменения существующего правила перезаписи:
add_filter('mod_rewrite_rules', function($rules) {
$modified_rules = str_replace('old-rule', 'new-rule', $rules);
return $modified_rules;
});
Здесь мы заменяем старое правило ‘old-rule’ на ‘new-rule’
Пример удаления существующего правила перезаписи:
add_filter('mod_rewrite_rules', function($rules) {
return preg_replace('/old-rule
/', '', $rules);
});
Этот код удаляет правило ‘old-rule’ из списка правил перезаписи
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо добавить или изменить правила перезаписи для улучшения SEO или кастомизации URL
– Производительность
Сложные правила могут повлиять на производительность, поэтому старайтесь минимизировать количество правил
– Предупреждения
Будьте осторожны с конфликтами между правилами и следите за тем, чтобы они не приводили к ошибкам 404
Альтернативы
Тип: filter
Этот хук позволяет изменять массив правил перезаписи, который уже существует
Используйте его, если необходимо работать с уже заданными правилами, а не добавлять новые