web-dev-qa-db-fra.com

Types de messages personnalisés, réécriture d'URL sur plusieurs CPT

Re: Types de messages personnalisés, taxonomies et permaliens par @TheDeadMechanic La solution ci-dessus fonctionne parfaitement, et la réécriture est excellente, mais pouvez-vous nous dire comment réécrire pour plus d'un type de message personnalisé avec sa propre taxonomie? le code ci-dessous fonctionne pour la taxonomie produit cat sous produits, mais en ajoutant un autre CPT avec taxonomie, le code 404 étant différent de celui indiqué ci-dessous, comment modifier le code ci-dessous afin de prendre en charge plusieurs CPT et taxonomie?

    function filter_post_type_link($link, $post){
    if ($post->post_type != 'product_listing')
        return $link;

    if ($cats = get_the_terms($post->ID, 'product_cat'))
        $link = str_replace('%product_cat%', array_pop($cats)->slug, $link);
    return $link;
    }
 add_filter('post_type_link', 'filter_post_type_link', 10, 2);

merci d'avance

1
scampi

En supposant que l'extrait de code fourni fonctionne, puis en étendant l'instruction conditionnelle comme cela vous aidera,

function filter_post_type_link($link, $post)
{
    if ($post->post_type = 'custom_post_type_1') {

        if ($cats = get_the_terms($post->ID, 'custom_cat_1'))

             $link = str_replace('%custom_cat_1%', array_pop($cats)->slug, $link);

        return $link;

    } elseif ($post->post_type = 'custom_post_type_2') {

        if ($cats = get_the_terms($post->ID, 'custom_cat_2'))

             $link = str_replace('%custom_cat_2%', array_pop($cats)->slug, $link);

        return $link;

    } else {

        return $link;

    }

}

add_filter('post_type_link', 'filter_post_type_link', 10, 2);
1
userabuser