Удалить% category% из карты сайта Yoast - PullRequest
0 голосов
/ 06 августа 2020

Я использую Yoast SEO, среди прочих функций, карту сайта и основную категорию.

Этот код изменяет% category% на основную категорию (Yoast), и он отлично работает:

function wpa_category_post_link( $post_link, $id = 0 ){
    $post = get_post($id);  
    if ( is_object( $post ) ){
        $terms = wp_get_object_terms( $post->ID, 'otw_pm_portfolio_category' );
        if( $terms ){
               $the_term = $terms[0];
            foreach($terms as $term) {
                   if( get_post_meta($post->ID, '_yoast_wpseo_primary_otw_pm_portfolio_category',true) == $term->term_id ) {
                      $the_term = $term;
                   }  
            }
             if ($the_term->slug) {
                $post_link = str_replace( '%category%' , $the_term->slug , $post_link );
             }
        }
    }
                return $post_link; 
} 
add_filter( 'post_type_link', 'wpa_category_post_link', 1, 3 );

Но на карте сайта, созданной Yoast, первая запись для типа сообщения - это URL-адрес с% category%, которого не существует. введите описание изображения здесь Я потратил часы на поиск ответа, но без решения. Я пробовал использовать фильтры как wpseo_sitemap_url, но безуспешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...