Чтобы удалить часть "news" из URL для пользовательского типа записей (custom post type) в WordPress, необходимо изменить параметры при создании этого типа записей. Также стоит настроить обычные постоянные ссылки (permalinks). Вот шаги, которые помогут вам это сделать:
### 1. Изменение параметров при регистрации типа записи
При регистрации вашего типа записи `news`, убедитесь, что вы использовали параметр `rewrite` следующим образом:
```php
function custom_post_type_news() {
$args = array(
'label' => 'News',
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => ''), // Указываем пустую строку
'supports' => array('title', 'editor', 'excerpt', 'thumbnail'),
);
register_post_type('news', $args);
}
add_action('init', 'custom_post_type_news');
```
### 2. Сохранение постоянных ссылок
После внесения изменений в код, вам необходимо обновить настройки постоянных ссылок:
- Перейдите в админку WordPress.
- Зайдите в **Настройки** -> **Постоянные ссылки**.
- Просто нажмите кнопку **Сохранить изменения** — это обновит структуру постоянных ссылок.
### 3. Обработка возможных конфликтов
Имейте в виду, что если на вашем сайте есть страницы или записи с одинаковыми слагами (например, `site.com/post-name` это может быть обычная запись или страница), это может вызвать конфликты. Если столкнетесь с подобными проблемами, стоит продумать уникальные слаги для ваших записей.
### 4. Дополнительная настройка .htaccess (опционально)
В большинстве случаев вышеуказанных шагов достаточно, но если у вас возникнут проблемы с URL, возможно, вам понадобится проверить файл `.htaccess`. Он должен содержать базовые правила для перезаписи:
```plaintext
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
```
Убедитесь, что этот код присутствует и не изменен.
### Заключение
После выполнения вышеперечисленных шагов, ссылки на записи типа `news` должны выглядеть как `site.com/post-name`, и вам больше не нужно будет добавлять "news" в URL.