Чтобы добавить префикс «page/» к статическим страницам в WordPress без возникновения проблем с отображением ссылок в администраторской панели, нужно использовать механизм перезаписи URL, который WordPress предоставляет. Следующая инструкция поможет вам корректно настроить новый префикс.
1. **Добавьте правила перезаписи:** Добавьте свои собственные правила перезаписи, чтобы трансформировать URL-адреса. Можно использовать функцию `add_rewrite_rule`, чтобы сопоставить новый URL с существующими страницами.
2. **Обновите структуру перезаписи:** Не забудьте сбросить правила перезаписи после их добавления.
Вот более полный пример кода, который можно использовать в файле вашей темы `functions.php` или в отдельном плагине:
```php
add_action( 'init', 'custom_page_rewrites' );
function custom_page_rewrites() {
add_rewrite_rule(
'^page/([^/]+)/?$',
'index.php?pagename=$matches[1]',
'top'
);
}
add_filter( 'post_type_link', 'custom_page_link', 10, 2 );
function custom_page_link( $post_link, $id ) {
$post = get_post( $id );
if ( 'page' === $post->post_type ) {
return home_url( '/page/' . $post->post_name );
}
return $post_link;
}
add_action( 'init', 'flush_rewrite_rules_on_plugin_activation' );
function flush_rewrite_rules_on_plugin_activation() {
// Это нужно делать только при активации плагина
flush_rewrite_rules();
}
```
### Описание кода:
- **add_rewrite_rule:** Эта функция создает новое правило перезаписи, которое будет обрабатывать URL, начинающиеся с "page/", и направляет их на стандартную обработку страниц WordPress.
- **post_type_link:** Этот фильтр позволяет изменить структуру ссылок на ваши страницы, добавляя перед ними префикс "page/".
- **flush_rewrite_rules_on_plugin_activation:** Вам нужно сбросить правила перезаписи, чтобы внесенные изменения вступили в силу. Это можно сделать при активации плагина. Если вы используете этот код в файле `functions.php`, вы можете добавить вызов `flush_rewrite_rules` вручную, но в этом случае имейте в виду, что частый вызов этой функции не рекомендуется, так как может замедлить ваше приложение.
### Важно:
1. После добавления этого кода необходимо перейти в настройки «Постоянные ссылки» в админке WordPress и просто нажать «Сохранить изменения», чтобы сбросить правила перезаписи без необходимости активации/деактивации плагина.
2. Убедитесь, что все ваши ссылки корректно работают, и проверьте, нет ли конфликтов с другими плагинами или пользовательскими правилами перезаписи.
Теперь, когда вы перейдете на страницы, они будут отображаться с префиксом "page/" в URL, и у вас не должно быть проблем с отображением ссылок в администраторской панели.