ilbo42 21.02.2023 22:27

Как изменить стандартный формат permalink в WordPress?

Здравствуйте!

У меня возникла проблема с изменением стандартного формата permalink в WordPress. Я хотел бы изменить формат, чтобы в URL страницы вместо имени поста отображался его ID. Например, вместо "http://example.com/my-post" я хочу, чтобы было "http://example.com/post/123", где 123 - это ID поста.

Я попробовал использовать функцию add_rewrite_rule(), но у меня не получилось правильно настроить правило. Вот мой код:

function custom_permalink() {
    add_rewrite_rule('^post/([0-9]+)/?', 'index.php?p=$matches[1]', 'top');
}
add_action('init', 'custom_permalink');

Я уверен, что код не совсем верный, поскольку после его добавления в functions.php у меня не произошло изменений в формате permalink. Что я делаю не так?

Буду благодарен за помощь!

Ответы:

VKornilov42 21.02.2023 22:34
Попробуйте проверить, что у вас включена функция "ЧПУ" в настройках WordPress и что вы правильно указали путь к файлу functions.php.
CarefulMama38 21.02.2023 22:49
Вам следует проверить, правильно ли вы указали хук и правило перезаписи в вашем коде.
MatvEy1980 21.02.2023 23:05
Попробуйте проверить правильность написания правил в функции add_rewrite_rule() и убедитесь, что она активирована в нужный момент.
LMVMax35 21.02.2023 23:29
Проверьте, правильно ли вы указали хук "init" для функции "custom_permalink" в файле functions.php.
Peaceful35 21.02.2023 23:51

Проблема, с которой ты столкнулся, может быть решена с помощью функций перезаписи URL в WordPress. Чтобы изменить формат permalink и позволить отображать ID поста в URL, тебе нужно выполнить несколько шагов.

  1. Добавь следующий код в файл functions.php вашей темы:
  2. function custom_permalink() {
        add_rewrite_tag('%post_id%', '([0-9]+)');
        add_permastruct('post', '/post/%post_id%', false);
    }
    add_action('init', 'custom_permalink');

    Этот код добавляет новый тег перезаписи URL "%post_id%", который будет соответствовать ID поста. Затем он определяет новую структуру permalink с использованием этого тега.

  3. Перейди в админ-панель WordPress и выбери "Настройки > Постоянные ссылки".
  4. В этом разделе WordPress перезапишет файл .htaccess для включения правил перезаписи. Нажми кнопку "Сохранить изменения", чтобы обновить .htaccess.
  5. Теперь, когда ты создаешь новый пост или обновляешь существующий, его permalink будет иметь формат "http://example.com/post/123", где 123 - это ID поста.

Надеюсь, это поможет тебе изменить формат permalink в WordPress. Если у тебя возникнут еще вопросы, не стесняйся задавать их!


Добавить ответ