Total Pageviews

Thursday, February 7, 2013

Filtering categories in the permalink structure

 
The way to remove the parent category from a permalink when using the
 /%category%/%postname%/ custom structure 
 
 
add_filter( 'post_link', 'remove_parent_cats_from_link', 10, 3 );
function remove_parent_cats_from_link( $permalink, $post, $leavename )
{
 $permalink = str_replace( $parentcats, '', $permalink );
 }
$cats = get_the_category( $post->ID );
    
if ( $cats ) {
        
// Make sure we use the same start cat as the permalink generator
        
usort( $cats, '_usort_terms_by_ID' ); // order by ID
       
 $category = $cats[0]->slug;
       
 if ( $parent = $cats[0]->parent ) 
    
    {
   
// If there are parent categories, collect them and replace them in the link
            
$parentcats = get_category_parents( $parent, false, '/', true );
  
// str_replace() is not the best solution if you can have duplicates:
 
// myexamplesite.com/luxemburg/luxemburg/ will be stripped down to myexamplesite.com/
// But if you don't expect that, it should work
            
    }
    return $permalink;
}