Нельзя поставить форму URL структуры postname, что делать?

Если вы хотите изменить структуру URL в WordPress на что-то отличное от стандартной постоянной ссылки "postname", вы можете использовать фильтр rewrite_rules_array для создания своих собственных правил перезаписи URL.

Вот пример кода, который позволяет изменить структуру URL на /category/postname/:

function custom_rewrite_rules() {
    add_rewrite_rule(
        '^([^/]+)/([^/]+)/?$',
        'index.php?category_name=$matches[1]&name=$matches[2]',
        'top'
    );
}
add_action('init', 'custom_rewrite_rules');

В этом примере мы используем регулярное выражение ^([^/]+)/([^/]+)/?$ для сопоставления URL-адресов вида /category/postname/. Затем мы перенаправляем соответствующие запросы на index.php?category_name=$matches[1]&name=$matches[2]. Здесь $matches[1] представляет значение категории, а $matches[2] представляет значение имени поста.

После добавления кода выше вы должны обновить правила перезаписи ЧПУ, чтобы WordPress учел наши изменения. Для этого перейдите в раздел «Параметры» -> «Постоянные ссылки» в административной панели WordPress и нажмите кнопку «Сохранить изменения».

Теперь, когда вы создаете новый пост и выбираете категорию, его URL будет иметь следующую структуру: /category/postname/.

Обратите внимание, что пример, приведенный выше, является простым и может потребовать дополнительного кода или настройки, если вам нужно сделать более сложную структуру URL.