サポート » 使い方全般 » カスタムタクソノミーのスラッグでURLを作ったものの固定ページへアクセスできなくなった

  • 現在、47都道府県ごとにアクティビティーを登録した構造のサイトを作っています
    下記のようなURL構造にしたかったため
    http://ドメイン/都道府県名/アクティビティー名/post_id

    function.phpにて、パーマリンク設定で使えるタグを自作しました

    
        //カスタムタクソノミーパーマリンク追加
        add_filter('post_link', 'events_permalink', 10, 3);
        add_filter('post_type_link', 'events_permalink', 10, 3);
        function events_permalink($permalink, $post_id, $leavename) {
            var_dump($permalink);
            if (strpos($permalink, '%events%') === FALSE) return $permalink;
            
                // Get post
                $post = get_post($post_id);
                if (!$post) return $permalink;
        
                // Get taxonomy terms
                $terms = wp_get_object_terms($post->ID, 'events');   
                if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug;
                else $taxonomy_slug = 'events';
        
            return str_replace('%events%', $taxonomy_slug, $permalink);
        }   
        add_filter('post_link', 'prefectures_permalink', 10, 3);
        add_filter('post_type_link', 'prefectures_permalink', 10, 3);
        function prefectures_permalink($permalink, $post_id, $leavename) {
            if (strpos($permalink, '%prefectures%') === FALSE) return $permalink;
                // Get post
                $post = get_post($post_id);
                if (!$post) return $permalink;
        
                // Get taxonomy terms
                $terms = wp_get_object_terms($post->ID, 'prefectures');   
                if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug;
                else $taxonomy_slug = 'prefectures';
        
            return str_replace('%prefectures%', $taxonomy_slug, $permalink);
        }  
    
    

    その後wordpressの管理画面側、パーマリンク設定からカスタム構造を選択し「/%prefectures%/%events%/%post_id%/」と登録しました

    投稿ページの(自作の)カテゴリー項目からeventsとpost_idそれぞれに入るスラッグを指定しています。
    通常の投稿は見れるのですが、固定ページはindex.phpが読み込まれコンテンツが本来表示される部分は真っ白になっています

    パーマリンク設定を基本の形に戻すと、固定ページ用に作ったpage.phpテンプレートが読み込まれ正常にコンテンツが表示されます

    固定ページでは、投稿ページで行っている自作のカテゴリー項目からeventsとpost_idそれぞれに入るスラッグを指定・・・・。これをしていないのでURLが無効となり読み込めない状態というのは分かります。

    ですがここからの対処法が分かりませんでした
    複数個のパーマリンク構造を指定できれば、現状のコード
    if (strpos($permalink, '%prefectures%') === FALSE) return $permalink;
    で対応可能だとは思うのですが、複数のパーマリンク構造を設定する方法が結局分かりませんでした

    固定ページのみパーマリンク設定を変更すれば良いのでは?と思いこちらも調べたのですが分からずじまいです。

    通常投稿と固定ページそれぞれ別のURL構造にすることは可能でしょうか?
    今回の場合どのような部分を調べれば解決できそうか、お心当たりある方いましたら教えていただきたいです。

    (初めてのため要領を得ない記載で申し訳ありません。情報の不足などあればご質問いただきたいです)

  • トピック「カスタムタクソノミーのスラッグでURLを作ったものの固定ページへアクセスできなくなった」には新たに返信することはできません。