Intereting Posts

Удалено 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 использовать ее и вместо этого настроить обычные сообщения? – поскольку большинство дефолтов может принести пользу ЕКПП, а должности не имеют условий.

Благодарю.

Это отлично работает для меня, за исключением того, что вся система выше имеет некоторые проблемы с моей конфигурацией (я сделал мою установку 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);