Постоянная ссылка для пользовательской таксономии Wordpress - PullRequest
0 голосов
/ 30 мая 2018

В настоящее время у меня есть веб-сайт WordPress, на котором есть страницы, блог и пользовательский тип записи с именем «Case Studies».

Моя постоянная настройка - это пользовательская структура, которая: / blog /% postname% /, так что яможет отображать «Блог» в URL для всех сообщений в блоге.

Структура URL для моего пользовательского типа записи: http://www.my -domain / case-Studies / case-study-url-here / который работает нормально с настройкой ниже.

    "rewrite" => array('slug' => 'case-studies', 'with_front' => FALSE),

У меня есть собственная таксономия для классификации моего тематического исследования по разделу, поэтому я создал таксономию, называемую разделением, и я хочу, чтобы ее URL был "http://www.my -домен / тематические исследования / Division-Here / но в настоящее время он показывает как "http://www.my -домен / блог / тематические исследования / Division-Here ", что не правильно.

Чтобы удалить слово blog из URL-адреса деления, я изменил код перезаписи на тот же, чтобы он выглядел, как показано ниже.

    "rewrite" => array( 'slug' => 'case-studies', 'with_front' => false),

, но проблема в том, что я не могу перейти к таксономии делениястраница правильно, это скорее показывает некоторую случайную страницу или сообщение с моего сайта, но старый URLс «блогом» база работает нормально и показывает список конкретных примеров, если я сделаю «with_front» true;но это не так, как я хочу.

Любая помощь?Как я могу удалить блог из URL и заставить его работать?

С уважением, Manoj Soni

1 Ответ

0 голосов
/ 30 мая 2018

В ваш пользовательский тип записи вам нужно добавить слаг перезаписи, например, 'rewrite' => array('slug' => '%division%', 'with_front' => false ),

, а затем вам нужно добавить следующий код в ваш функциональный файл.

function d_reset_permlinks( $post_link, $post ){
    if ( is_object( $post ) && $post->post_type == 'case-studies' ){
    $terms = wp_get_object_terms( $post->ID, 'division' );
    if( $terms ){
        return str_replace( '%division%' , $terms[0]->slug , $post_link );
    }
   }
   return $post_link;
}
 add_filter( 'post_type_link', 'd_reset_permlinks', 1, 2 );

И сбросить permlinksс отправьте имя , затем проверьте.

...