Описание post_rewrite_rules
— Filter
Хук post_rewrite_rules позволяет изменять правила перезаписи URL в WordPress. Он срабатывает после генерации правил перезаписи, но перед их записью в базу данных. Это позволяет разработчикам добавлять или изменять правила для кастомных типов записей или таксономий
Примеры использования
Пример добавления кастомного правила перезаписи для пользовательского типа записи:
add_filter('post_rewrite_rules', function($rules) {
$new_rules = array('
'custom-post-type' => 'index.php?post_type=custom_post_type');
return $new_rules + $rules;
});
Этот пример добавляет правило для кастомного типа записи ‘custom_post_type’
Пример изменения существующего правила перезаписи:
add_filter('post_rewrite_rules', function($rules) {
if (isset($rules['old-url'])) {
$rules['new-url'] = $rules['old-url'];
unset($rules['old-url']);
}
return $rules;
});
В этом примере мы изменяем существующее правило перезаписи ‘old-url’ на ‘new-url’
Пример удаления правила перезаписи:
add_filter('post_rewrite_rules', function($rules) {
unset($rules['unwanted-url']);
return $rules;
});
Здесь мы удаляем правило перезаписи для ‘unwanted-url’
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо добавлять или изменять правила перезаписи для кастомных типов записей или таксономий
– Производительность
Следите за тем, чтобы не создавать слишком много правил, так как это может замедлить обработку запросов
– Предупреждения
Избегайте конфликтов с существующими правилами перезаписи, проверьте, чтобы ваши новые правила не перекрывали уже существующие
Альтернативы
Тип: filter
Этот хук позволяет изменять массив правил перезаписи с более широкими возможностями, включая взаимодействие с другими плагинами
Используйте его, если вам нужно реализовать более сложные изменения в правилах перезаписи