Как изменить стандартный формат 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. Что я делаю не так?
Буду благодарен за помощь!
Ответы:
Проблема, с которой ты столкнулся, может быть решена с помощью функций перезаписи URL в WordPress. Чтобы изменить формат permalink и позволить отображать ID поста в URL, тебе нужно выполнить несколько шагов.
- Добавь следующий код в файл functions.php вашей темы:
- Перейди в админ-панель WordPress и выбери "Настройки > Постоянные ссылки".
- В этом разделе WordPress перезапишет файл .htaccess для включения правил перезаписи. Нажми кнопку "Сохранить изменения", чтобы обновить .htaccess.
- Теперь, когда ты создаешь новый пост или обновляешь существующий, его permalink будет иметь формат "http://example.com/post/123", где 123 - это ID поста.
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 с использованием этого тега.
Надеюсь, это поможет тебе изменить формат permalink в WordPress. Если у тебя возникнут еще вопросы, не стесняйся задавать их!