Intereting Posts
WooCommerce breadcrumb отображает пользовательские сообщения вместо данных продукта Обрезать сообщения из WP-Query? Запуск цикла с пользовательской строкой запроса на настраиваемом шаблоне страницы Отображение сообщений категории в алфавитном порядке (пользовательский тип сообщения) Настроить текст рамки мультимедиа Как я могу изменить язык автоматических писем? Лучший способ написать страницу часто задаваемых вопросов? Отображение только определенной категории в шаблоне пользовательской страницы Возможно ли получить локальный URL-адрес изображения, если у него также есть фотон? Переключатель языка WordPress Минимальная настраиваемая структура постоянной ссылки Назначение меню администратора и подменю Как сделать пользователя неактивным по умолчанию во время регистрации? dynamic_sidebar, не отображающий боковую панель Обработка пользовательских форм в WP .. правильным способом?

Изменить категорию базы для пользовательских типов сообщений или сообщений

У меня есть несколько вопросов, и я не думаю, что результат, который я хочу, возможен без добавления пользовательской таксономии и повторения кучи работы.

Я зарегистрировал настраиваемый тип сообщений – галерея – с таксономиями, установленными на post_tag и категорию.

У меня есть структура permalink, установленная в / blog /% postname% /, поэтому сообщения могут иметь набор / blog / base, используя раздел Posts Posts по умолчанию в WordPress.

Когда я использую get_category_link () для категории в настраиваемом типе публикации галереи, она ссылается на / blog / церемония / вместо / gallery / церемоний /, что я хотел бы что угодно в архиве галереи или отдельной странице галереи. Для блога это должно быть / blog / category_name / как это сейчас.

Я знаю, что я могу сделать работу из этого вопроса , но у меня уже много работы, и я не хочу возвращаться.

Мои вопросы:

Есть ли способ иметь / блог / церемонии / и / галерея / церемонии / загружать одни и те же категории, и я могу отфильтровать их с тем, что установлено в / blog / или / gallery / в URL с помощью $ _SERVER ['REQUEST_URI']. (или что-то подобное) без создания пользовательской таксономии?

Если нет (я не думаю, что есть), есть ли способ, чтобы я мог лишить / blog / out пользовательской постоянной ссылки, чтобы он просто показывал / церемонии / и все еще имел / blog / в начале всего, что было опубликовано в Раздел «Сообщения»?

Любая помощь приветствуется. Спасибо!

Solutions Collecting From Web of "Изменить категорию базы для пользовательских типов сообщений или сообщений"

Когда вы регистрируете свой тип сообщения, в вашем массиве параметров задайте

'rewrite' => array( 'with_front' => false ), 

это удалит «блог» с фронта. Не забудьте сбросить свои постоянные ссылки после того, как сделаете это изменение.

Не уверен насчет категорий, запрограммированных через wordpress (это возможно), но вы можете сделать правило перезаписи в htaccess, которое легко перенаправляет все / blog / category в / gallery / category. Что-то вроде:

 RewriteEngine On # Turn on the rewriting engine RewriteRule ^/blog/category/([A-Za-z0-9-]+)/?$ /gallery/category/$1 [NC,L] # Handle requests for "blog prefix" 

Я НАЙДЕНО РЕШЕНИЕ

Для начала у меня был пользовательский тип (галерея), в котором мне нужно было использовать те же категории, что и WordPress по умолчанию, но быть полностью разделенным. Я, наконец, придумал свое решение, и я поделюсь им, если кто-то столкнется с теми же проблемами, что и я.

Во-первых, я установил базу категорий внутри секции постоянной ссылки в / blog / category.

Затем я создал правило перезаписи: (спасибо rudtek за идею)

 add_rewrite_rule('^gallery/category/(.+?)/?$', 'index.php?category_name=$matches[1]&is_gallery_cat=1', 'top'); 

и мне нужно было добавить is_gallery_cat в query_vars чтобы он работал.

 add_filter( 'query_vars', 'query_vars' ); function query_vars( $vars ) { array_push($vars, 'is_gallery_cat'); return $vars; } 

Оттуда, на странице архива галереи, я использовал следующий код для ссылки на каждую из категорий, в которых он указан, с собственной ссылкой на галерею:

 $cats = get_the_category(); $co = ""; if(!empty($cats)){ foreach($cats as $cat){ $link = get_category_link($cat->term_id); $link = str_replace("blog/category", "gallery/category", $link); $co .= "<a href='$link'>{$cat->name}</a>, "; } } echo rtrim($co, ", "); 

Это изменяет ссылки, как я их хочу, но главная страница category.php или archive.php все еще загружала сообщения post_type, поэтому мне нужно было добавить фильтр.

 function set_category_archive_gallery_posts($query){ //check if cat page if(is_category()){ if(isset($query->query_vars['is_gallery_cat'])){ //it's a gallery cat search, change the query type to gallery $query->set('post_type', 'gallery'); } } } add_action('pre_get_posts', 'set_category_archive_gallery_posts'); 

Теперь, когда я перехожу на страницу категории через блог (сообщения) или через галерею, они загружают полностью отдельные записи, используя те же категории. Они могут разделить категорию, например, стороны, но показывать разные материалы.

Загрузка / блог / категория / партии / показывает все сообщения (а не галереи) с установленными партиями в то время как / gallery / category / parties / показывает только галереи с набором категорий, что именно то, что я искал.

Надеюсь, кто-то найдет это полезным!