Как удалить слово из URL-адреса в WordPress с помощью .htaccess?

На сайте, который я создаю, есть пост-тип под названием «Фокус». Поскольку они должны быть похожими на www.mysite.com/focus/page-post-name меня есть пул типа сообщения как «фокус».

Конечно, страница с архивами – www.mysite.com/focus что вызывает проблему, так как мне нужна конкретная страница, чтобы быть страницей архива. Мета-боксы используются для создания и добавления настроек на страницы. Я не могу просто создать страницу под названием «Фокус», поскольку она зарезервирована пост-типом.

Моя идея – создать страницу под названием «Наше фокус», в результате получив URL-адрес www.mysite.com/our-focus .

Я хотел бы просто удалить «наш» из этого URL-адреса, чтобы оно показалось, что архив используется.

Я пробовал установить has_archive в false, но это просто возвращается к использованию страницы archive.php.

Solutions Collecting From Web of "Как удалить слово из URL-адреса в WordPress с помощью .htaccess?"

Вы можете добавить следующее в ваш файл .htaccess между тегами <IfModule mod_rewrite.c> :

 RewriteCond %{HTTP_HOST} RewriteRule ^our-focus/(.*)$ /focus/$1 [R=301,L] 

Ваш .htaccess должен выглядеть следующим образом:

 # 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] # Custom Rewrite RewriteCond %{HTTP_HOST} RewriteRule ^our-focus/(.*)$ /focus/$1 [R=301,L] </IfModule> # END WordPress 

В результате он будет делать следующее:

 http://example.com/our-focus/test 

Перенаправления на:

 http://example.com/focus/test 

Если я правильно понимаю, у вас есть тип сообщения, в котором используется пул / focus slug, но вы хотите, чтобы обычная страница под названием Our Focus использовала этот пул. Для использования этой страницы вам потребуется переписать пул для персонализированного типа сообщения, независимо от того, включены ли архивы.

Если вы создали пользовательский тип сообщения в файле functions.php вашей темы, вы можете использовать параметр rewrite для установки другого пула. Например:

 add_action('init', 'register_cpt'); function register_cpt() { register_post_type('focus', array( 'label' => 'Focus', 'rewrite' => array('slug' => 'REWRITE-SLUG', 'with_front' => true), ) ) ); } 

Замена «REWRITE-SLUG» с помощью пули по вашему выбору.

См. Эту страницу Codex для получения дополнительной информации.

Использование перезаписи .htaccess само по себе не будет работать, поскольку этот слизень по-прежнему будет конфликтовать с slug настраиваемого типа сообщения. Вам нужно будет переписать slug для пользовательского типа сообщения, а затем вы можете просто изменить постоянную ссылку на экране редактирования страницы в / focus. Нет необходимости редактировать файл .htaccess.