add_rewite_tag измененные постоянные ссылки теперь возвращают 404 - PullRequest
0 голосов
/ 01 октября 2019

Я работаю на сайте Wordpress с каталогом курсов (пользовательский тип записи). Каждый курс имеет прикрепленные «course_prefix» и «course_code», которые применяются расширенными настраиваемыми полями. Я хотел бы заменить название курса в постоянной ссылке на префикс и код. Я использовал плагин для создания тега перезаписи для course_code, так как это просто текстовое поле. Course_prefix - это таксономия, поэтому мне пришлось создать собственное правило, чтобы получить имя префикса из возвращенного идентификатора префикса.

add_rewrite_tag( '%course_prefix%', 'v/([^/]+)' );

add_filter( 'post_type_link', function( $url, $post ){
    if ( 'course' === $post->post_type ) {
        $term_id = get_field( 'course_prefix');
        $term = get_term( $term_id );
        $value = $term->name;
        $url = str_replace( '%course_prefix%', $value, $url );
    }
    return $url;
}, 10, 2 );

Это преобразует xyz.com/study/courses/COURSE-NAME в xyz.com/study/courses/MATH-1102, что является префектом, за исключением того, что теперь сообщения приводят к 404 ошибкам. Я уже сбросил постоянные ссылки.

Мне кажется, что я что-то упускаю из-за правил перезаписи, чтобы сообщить сайту, к каким сообщениям прикреплены эти URL-адреса. Есть ли какие-нибудь ниндзя API для переписывания WordPress, которые могут помочь?

...