Intereting Posts
Общее количество W3 – кэширование браузера браузера, не работающее с полученными изображениями cdn Исключать изображения из «вставленных в сообщение» при попытке получить вложения Ограничить доступ и отображение для категорий Условный тег, чтобы определить, просматривает ли пользователь «Добавить медиа» (после нажатия кнопки «Добавить медиа») Как дублировать запрос curl XML с использованием API HTTP? Автоматическое обновление всех сообщений при использовании post_meta Как я могу заставить List Category Posts работать как виджет? Стратегии борьбы с гиперагрессивными спам-ботами? Как добавить WordPress Nonce для этой формы, чтобы избежать CSRF Как отправить сообщение? Какое наилучшее решение для поддержки всех существующих DATE? Добавление символьного счетчика к выделению метабокса Удаление определенной категории при удалении пользователя Предварительный просмотр в одиночном сообщении повторяет миниатюры в Jupiter Recent Posts widget добавление .current * тегов к пользовательским типам сообщений и таксономии

Добавление двух правил перезаписи

У меня есть пользовательский тип сообщения с пользовательской таксономией.

Тип персонализированного сообщения – новость.

Таможенная таксономия – новая_категория.

Я хочу, чтобы две управляющие ссылки:

http://example.com/news/ -> show news archive http://example.com/news/movies/ -> show category movie archive http://example.com/batman-returns/ -> show post content called "Batman Returns" 

Я пробовал это, но не работает:

 add_rewrite_rule('^news/([^/]*)/?','index.php?post_type=news&news=$matches[1]','top'); add_rewrite_rule('^news/([^/]*)/?','index.php?post_type=news&news_category=$matches[1]','top'); 

Предложения?

Solutions Collecting From Web of "Добавление двух правил перезаписи"

1. Измените new_category перезаписи new_category при регистрации :

 'rewrite' => ['hierarchical' => false, 'with_front' => false, 'slug' => 'news'] 

Удостоверьтесь, что правило перезаписи типа news – по умолчанию или:

 'rewrite' => ['slug' => false, 'with_front' => false] 

2. Добавьте правила перезаписи для new_category :

 add_action('init', function() { add_rewrite_rule('^news/([^/]+)/?$', 'index.php?new_category=$matches[1]&post_type=news', 'top'); }); 

3. Отфильтровать ссылки типа сообщения news :

 add_filter('post_type_link', function($post_link, $post, $leave_name = false, $sample = false) { if ( 'news' === $post->post_type) { $post_link = str_replace('/news/', '/', $post_link); } return $post_link; }, 10, 4); 

4. Добавьте тип сообщения для запроса vars :

Удаляя news из permalink, WordPress будет запрашивать сообщения из типа post post, и вы получите 404, которые не найдены. Поэтому нам нужно добавить наш тип сообщения для запроса vars.

 add_action('pre_get_posts', function($query) { if ( $query->is_main_query() && ( 2 === count($query->query) ) && isset($query->query['name']) ) { $query->set('post_type', ['post', 'news', 'page']); } }); 

Это все. Сбросьте свою структуру permalink и убедитесь, что она установлена ​​в /%postname%/ .