Home | Other | Sterge denumirea unui custom post in WordPress

Sterge denumirea unui custom post in WordPress

Probabil ca daca ai aterizat pe aceasta pagina esti in cautarea unei solutii pentru stergea denumiri unui custom post. By default wordpress, foloseste custom posts va crea un link sef de genul domeniu.ro/pagina-custom/articolul tau/.
Nu este prea placut nu?
Pentru ca recent m-am lovit de aceasi problema si am vrut sa am url-urile frumos aranjate pe site am apelat la urmatorul snippet:

function remove_custom_post_slug( $post_link, $post, $leavename ) {

    if ( 'event' != $post->post_type || 'publish' != $post->post_status ) {
        return $post_link;
    }

    $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );

    return $post_link;
}
add_filter( 'post_type_link', 'remove_custom_post_slug', 10, 3 );
function parse_request( $query ) {

    // Only noop the main query
    if ( ! $query->is_main_query() )
        return;

    // Only noop our very specific rewrite rule match
    if ( 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
        return;
    }

    // 'name' will be set if post permalinks are just post_name, otherwise the page rule will match
    if ( ! empty( $query->query['name'] ) ) {
        $query->set( 'post_type', array( 'post', 'numecustompost, 'page' ) );
    }
}
add_action( 'pre_get_posts', 'parse_request' );

Acest snippet trebuie adaugat in fisierul functions.php al template-ului pe care il folositi.
Dupa cum spun si cei de la wordpress avantajul este ca nu afecteaza performanta site-ului. Cu toate ca link-ul postari custom va putea fi accesat in continuare si ca domeniu.ro/pagina-custom/articolul tau/ el va fi afisat pentru vizitatori si crawlere ca domeniu.ro/articolul tau/.

About TotPeRo

Leave a Reply

Your email address will not be published. Required fields are marked *