Описание pre_wp_unique_post_slug
— Filter
Хук pre_wp_unique_post_slug позволяет изменять уникальный слаг поста перед его сохранением в базе данных. Он срабатывает в момент генерации слага при создании или обновлении поста, что дает возможность модифицировать слаг перед его проверкой на уникальность
Примеры использования
Пример изменения слага поста на основе его заголовка:
add_filter('pre_wp_unique_post_slug', function($slug, $post_id, $post_status, $post_type) {
if ($post_id) {
$post = get_post($post_id);
if ($post) {
$slug = sanitize_title($post->post_title) . '-custom';
}
}
return $slug;
}, 10, 4);
В этом примере мы добавляем ‘-custom’ к слагу, основанному на заголовке поста
Пример изменения слага на случайный набор символов:
add_filter('pre_wp_unique_post_slug', function($slug, $post_id, $post_status, $post_type) {
return $slug . '-' . wp_rand(1000, 9999);
}, 10, 4);
Здесь мы добавляем случайный номер к слагу, чтобы гарантировать его уникальность
Пример удаления определенных символов из слага:
add_filter('pre_wp_unique_post_slug', function($slug, $post_id, $post_status, $post_type) {
return preg_replace('/[^a-z0-9-]/', '', $slug);
}, 10, 4);
В этом примере мы удаляем все символы, кроме букв и тире, из слага
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить слаг поста перед его сохранением, особенно если слаг зависит от пользовательских данных
– Производительность
Хук не должен значительно влиять на производительность, так как выполняет простые операции с строками
– Предупреждения
Убедитесь, что изменения слага не нарушают уникальность, иначе это может привести к проблемам с сохранением постов
Альтернативы
Тип: filter
Этот хук срабатывает после проверки уникальности слага и может использоваться для дополнительных модификаций
Используйте его, если нужно внести изменения в уже проверенный слаг