Intereting Posts
Автоматическое добавление дочерних страниц в подменю Какое правило перезаписи URL-адресов нужно написать для получения var в URL-адресе? Как сделать жесткие коды Пользовательские пункты меню Предварительная заполнение пользовательских полей в New Post Что-то генерирует спам-страницы на моем сайте Возврат страницы WordPress 404 со значением по умолчанию в IIS7 Как отслеживать, изменил ли пользователь значение поля в виджетах или нет? Предупреждение: неверный аргумент, предоставленный foreach () в портфолио list.php Выборочно обновлять темы в WordPress multisite Get_Template_Part и два глобальных WP_Query на главной странице Отображение данных из таблицы с несколькими столбцами Создание пустой страницы программно Произошла непредвиденная ошибка. Что-то может быть неправильно с WordPress.org wp_verify_nonce не работает wp_enqueue_script не работает, если выйдет из системы

Удалено slug из CPT, теперь Как / где я привязываю фильтр к ссылке на страницы таксономии?

Я добавил код ниже и успешно изменил свой CPT slug для терминов таксономии. Мой блог permalinks / article /% postname% на случай, если вы задаетесь вопросом, и я хотел бы сохранить его таким образом, поэтому никаких столкновений с CPT.

Он отлично работает, и я избавился от пули CPT в постоянной CPT («списки»).

function listing_type_link_filter_function( $post_link, $id = 0, $leavename = FALSE ) { if ( strpos('%listing_type%', $post_link) === 'FALSE' ) { return $post_link; } $post = get_post($id); if ( !is_object($post) || $post->post_type != 'listing' ) { return $post_link; } $terms = wp_get_object_terms($post->ID, 'listing_type'); if ( !$terms ) { return str_replace('/listing_type', '/', $post_link); } return str_replace('%listing_type%', $terms[0]->slug, $post_link); } add_filter('post_type_link', 'listing_type_link_filter_function', 1, 3); 

Он отлично работает, а вместо:

mysite.com/listing_types/tours/tour-name (CPT "listing" post)

эти сообщения показывают:

 mysite.com/tours/tour-name 

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

 mysite.com/listing_type/tours/tour-name mysite.com/listings/tours/tour-name mysite.com/listing_types/tours/tour-name mysite.com/listing/tours/tour-name 

Теперь мне нужно связать тот же или похожий фильтр с фильтром терминальных архивов, который я не могу найти, если он есть.

поэтому вместо

mysite.com/cpt_slug/taxonomy_term (страница архива)

Я бы получил

mysite.com/taxonomy_term (страница архива)

… потому что самыми важными вещами на моем сайте являются те термины: listing_types, (туры, аттракционы, события), но я не могу допустить показ «листингов» или «листинга», даже если они для меня представлены.

Знаете ли вы, что за крючок, и как я должен его фильтровать, чтобы заменить листинг listing_type с ссылкой на страницы TERM ARCHIVE?

Или проще установить общую страницу настроек постоянных ссылок как% term% /% postname% и заставить CPT использовать ее и вместо этого настроить обычные сообщения? – поскольку большинство дефолтов может принести пользу ЕКПП, а должности не имеют условий.

Благодарю.

Solutions Collecting From Web of "Удалено slug из CPT, теперь Как / где я привязываю фильтр к ссылке на страницы таксономии?"

Это отлично работает для меня, за исключением того, что вся система выше имеет некоторые проблемы с моей конфигурацией (я сделал мою установку wp Multisite), которая сломала все остальные сообщения. Все они не найдены, хотя постоянная ссылка извлекается правильно каждый раз, как было обнаружено.

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

  function term_link_filter_function( $termlink, $term, $taxonomy ) { if ( strpos('listing_type', $termlink) === 'FALSE' ) { return $termlink; } else return str_replace('/listing_type', '', $termlink); } add_filter('term_link', 'term_link_filter_function', 1, 3);