<?php
// Protection from direct access
if (!defined('ABSPATH')) {
    exit;
}

/* 
function generate_slug_from_keyword($keyword, $maxLength = 50) {
    $slug = mb_strtolower($keyword);
    $slug = preg_replace('/[\s]+/', '-', $slug);
    $slug = preg_replace('/[^a-z0-9\-]/', '', $slug);
    $slug = preg_replace('/-+/', '-', $slug);
    $slug = trim($slug, '-');

    // Ограничиваем длину слага
    if (mb_strlen($slug) > $maxLength) {
        $slug = mb_substr($slug, 0, $maxLength);
        // Убедимся, что слаг не заканчивается на дефис после обрезки
        $slug = rtrim($slug, '-');
    }

    return $slug;
}
 */
 
 function generate_slug_from_keyword($keyword, $maxLength = 50) {
    // Приводим строку к нижнему регистру
    $slug = mb_strtolower($keyword);
    
    // Заменяем пробелы и любые пробельные символы на дефисы
    $slug = preg_replace('/[\s]+/', '-', $slug);
    
    // Убираем любые символы, которые не являются буквами или цифрами любого алфавита (включая Unicode), дефисами
    $slug = preg_replace('/[^\p{L}\p{N}\-]+/u', '', $slug);
    
    // Убираем повторяющиеся дефисы
    $slug = preg_replace('/-+/', '-', $slug);
    
    // Удаляем дефисы в начале и в конце
    $slug = trim($slug, '-');

    // Ограничиваем длину слага
    if (mb_strlen($slug) > $maxLength) {
        $slug = mb_substr($slug, 0, $maxLength);
        // Убедимся, что слаг не заканчивается на дефис после обрезки
        $slug = rtrim($slug, '-');
    }

    return $slug;
}
