Одинаковый url post_type WordPress

184
24 мая 2022, 10:10

На сайте используется плагин Custom Post Type UI, который добавляет post_type=types. В итоге вывод материалов происходит по ссылке site.ru/types/example. Также есть вывод обычных записей post_type=post. Они выводятся по адресу site.ru/catalog/tovar-title Мне нужно, чтобы site.ru/types/example выглядел так site.ru/catalog/example, т.е. имел схожий адрес. Как это можно сделать?

Пробовал менять slug на catalog, чтобы совпадали url, однако ни один пост не отображался вообще.

Answer 1

Вставьте в functions.php

add_filter( 'post_type_link', 'types_remove_slug', 10, 3 );
function types_remove_slug( $post_link, $post, $name ) {
 
    if ( 'types' != $post->post_type || 'publish' != $post->post_status ) {
      return $post_link;
    }
    $post_link = str_replace( '/' . $post->post_type . '/', '/catalog/', $post_link );
 
    return $post_link;
 
}
add_action( 'pre_get_posts', 'types_change_request', 10, 3 );
 
function types_change_request( $query ) {
 
     if ( !is_admin() && $query->is_main_query() ) {
            $query->set( 'post_type', array( 'post', 'page', 'types' ) );
     }
}
READ ALSO
Не обновляет контакт в MailChimp

Не обновляет контакт в MailChimp

Невозможно обновить теги для созданных контактов в MailChimpРебят покажите пожалуйста как добавить уже подписанному контакту теги используя...

177
Проверка массива с числами

Проверка массива с числами

У меня есть массив с 9 цифрами по порядку, и пользователь вводит число, как сделать проверку на то, есть ли то число в этом массиве которое он ввел...

166
Перенос изображения на меш Unity

Перенос изображения на меш Unity

Нужно, чтобы текстура спроецировалась на несколько фигур рядом с собой и так и осталось

254