web-dev-qa-db-ja.com

カスタム投稿タイプ、複数のCPTでのURL書き換え

Re: @TheDeadMechanicによるカスタム投稿タイプ、分類法、パーマリンク 上記の解決策は完璧に機能し、書き換えは素晴らしいですが、書き換え方法についてアドバイスできます。独自の分類法を持つ複数のカスタム投稿タイプの場合以下のコードは製品の下の分類製品catに対して機能しますが、分類に別のCPTを追加すると、404が含まれないため、次のコードを修正して複数のCPTと分類に対応できますか。

    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);

前もって感謝します

1
scampi

提供されたコードスニペットがうまくいって、それからそのように条件文を拡張することが役立つと仮定して、

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