Intereting Posts
Как изменить тематический контент в Thematic? Как я могу удалить встроенные стили, включенные по умолчанию, с помощью функции Genesis framewrok? В противном случае файл не работает в дочерней теме? Как восстановить потерянное имя пользователя? Я использую wp_nav_menu для отображения моего меню, но мне нужна еще одна ссылка, которая является жесткосвязанной ссылкой. Как я могу это сделать? Как вводить кодовый код вручную? Удалить размеры из имени файла с изображением Использовать the_post_thumbnail в качестве фонового изображения в LESS CSS Фильтровать get_the_title для удаления определенных символов? Загрузите изображение с фронтальной стороны с помощью кнопки WordPress add media Отображение случайных изображений галереи и ее родительского заголовка, ведущего к родительскому сообщению permalink TinyMCE – добавить класс в OL – селектор, похоже, не получает родительский OL, UL, просто LI (4.6.3) Сортировка столбцов таксономии по метазначению числовой Реструктуризация объектов из Rest-Api Случайные пользователи

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

Я боролся с этим часами.

Я пытаюсь получить эту структуру URL:
example.com/business/%custom-tax-name%/%custom-post-name%/
По индивидуальному налоговому названию я не имею в виду имя таксономии («Местоположение»), я имею в виду значение, выбранное для этого конкретного сообщения, которое будет именем города. Так,
example.com/business/long-island-city/business-name
или
example.com/business/phoenix/business-name/

Пока я сделал обычную таксономию:

 $singular = 'Merchant Location'; $plural = 'Merchant Locations'; $taxonomy_args = array( 'rewrite' => array( 'slug' => 'business-location', 'with_front' => FALSE, 'hierarchical' => FALSE ) ); // Register taxonomy ... 

и изменили ссылки в фильтре post_type_link

 function filter_business_permalinks($post_link, $post, $leavename, $sample) { if ($post->post_type == 'my_custom_post_type') { $terms = get_the_terms($post->ID, 'my_custom_taxonomy'); foreach ($terms as $term) { $post_link = str_replace('business/', 'business/'. $term->slug .'/', $post_link); break; } return $post_link; } add_filter('post_type_link', 'filter_business_permalinks', 10, 4); 

И получившийся URL-адрес после этого просто то, что я хотел, поэтому функция фильтра работает отлично. Однако, когда я нажимаю URL-адрес, он переходит к следующему:
example.com/business/long-island-city/long-island-city/business-name
который дает 404.

Что может быть причиной этого и как я могу это исправить?

Вся помощь очень ценится.

Заметка:
Я не хочу, чтобы это была структура URL-адресов:
example.com/business/location/long-island-city/business-name/
имея имя таксономии в URL-адресе.

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

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

Во-первых, зарегистрируйте таксономию вашего местоположения:

 register_taxonomy( 'location', array( 'business' ), array( 'rewrite' => array( 'slug' => 'business-location' ) ) ); 

Затем зарегистрируйте тип бизнес-сообщения. Важным моментом здесь является включение тега %location% rewrite в пул. Мы будем использовать это для замены термина местоположения в функции post_type_link :

 register_post_type( 'business', array( 'label' => 'Business', 'public' => true, 'rewrite' => array( 'slug' => 'business/%location%' ), 'hierarchical' => false ) ); 

Теперь функция поменять местами:

 function wpa_business_permalinks( $post_link, $id = 0 ){ $post = get_post($id); if ( is_object( $post ) && $post->post_type == 'business' ){ $terms = wp_get_object_terms( $post->ID, 'location' ); if( $terms ){ return str_replace( '%location%' , $terms[0]->slug , $post_link ); } } return $post_link; } add_filter( 'post_type_link', 'wpa_business_permalinks', 1, 2 );