Intereting Posts
Заменить shortcode на выходные данные в базе данных? Я не могу изменить цвет фона тела через style.css Могу ли я создать шаблон или doctype для моего сайта в блоге? Перемещение каталога WordPress (тот же домен) – проблема с GUID? Как преобразовать все временные метки php custom_field в базу данных в js timestamps? Visual Composer: Где найти исходный код настраиваемого элемента? Переадресовывать зарегистрированных пользователей, если они находятся на определенной странице Сортировать по & include массиву по определенным идентификаторам не может видеть живую версию style.css – это кеширование веб-сервера? WooCommerce добавляет имя класса в список Попытка получить свойство ошибки, отличной от объекта, используя get_post_meta () Комментарии присваиваются неправильной или связанной почте Изображения прекратили загрузку после добавления SSl Разбиение страницы разбито, и мне нужна помощь в ее исправлении Качество масштабирования изображения WordPress

add_rewrite_rules префикс все

Мне нужно настроить структуру перезаписи WP, в которой я префикс всех URL-адресов с помощью настраиваемого (динамического) префикса.

Таким образом, URL-адреса будут выглядеть так:

www.example.com/myprefix1/

www.example.com/myprefix2/

www.example.com/myprefix1/a-page

www.example.com/myprefix1/a-category

www.example.com/myprefix1/a-cpt

www.example.com/myprefix2/a-cpt

и т.п.

До сих пор я придумал это:

$options = implode( array('myprefix1','myprefix2', '|' ); // my prefix options // add a rule for each registered post type (??) foreach($postTypes as $postType){ $new_rules['(' . $options . ')/(.+?)/?$'] = 'index.php?post_type='.$postType.'&' . self::$sitePrefixName . '='. $wp_rewrite->preg_index(1).'&pagename='. $wp_rewrite->preg_index(2); } // add a rule for the home page (?) $new_rules['(' . $options . ')/?$'] = 'index.php?' . self::$sitePrefixName . '='. $wp_rewrite->preg_index(1); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; 

Это работает, но я считаю, что таксономии здесь не включены. Я стараюсь сделать это максимально гибким, чтобы будущие CPT, налоги и т. Д. Также работали.

Правильно ли я здесь делаю или есть другие способы сделать это?

Thanx!

Solutions Collecting From Web of "add_rewrite_rules префикс все"

Вы когда-нибудь рассматривали использование фильтра rewrire_rules_array для изменения $ rewrite_rules?

  /** * Example of Changing All Rewrite Rules * * @param array $rewrite_rules The compiled array of rewrite rules. * @return array The compiled array of rewrite rules (altered). */ function wpse_263624_rewrite_rules_example( $rewrite_rules ) { $prefixes = array( 'otro', 'esto' ); $prefix_regexp = '(' . implode( '|', $prefixes ) . ')/'; $new_rewrite_rules = array(); $match_pattern = '/\$matches\[(\d)\]/si'; foreach ( $rewrite_rules as $rewrite_rule => $match ) { // Incrementing $match becaouse prefixes goes as capturing group. $new_match = preg_replace_callback( $match_pattern , function( $m ){ return sprintf('$matches[%d]', $m[1] + 1); }, $match); // Adding Prefix Group and New Value for our match. $new_rewrite_rules[ $prefix_regexp . $rewrite_rule ] = $new_match; } return $new_rewrite_rules; } add_filter( 'rewrite_rules_array', 'wpse_263624_rewrite_rules_example' ); 

Это заканчивается чем-то вроде этого ..

изменен массив правил перезаписи