サポート » 使い方全般 » 固定ページにおけるリライトルールの第2引数について

  • 解決済 fongafon

    (@fongafon)


    固定ページでのリライトルールの書き方を知りたいです。
    長くなってしまい恐縮ですが、宜しくお願い致します。

    ——
    現状
    ——
    まず現状として固定ページ「member」の子階層である「example.com/member/taro」にアクセスすると、「taro」という会員の固定ページが表示される状態です。

    ——
    目的
    ——
    そして目的は、固定ページ「taro」の子階層に「profile」や「works」というリンクを作ろうというものです。つまり固定ページ「member」の孫階層にあたります。

    ——
    質問
    ——
    そのために考えたコードが下記でして、「// カスタム投稿タイプ」はできたのですが、「// 固定ページ」ができません。

    function rewrite_init() {
    
      // カスタム投稿タイプ
      add_rewrite_rule( 
        '^country/([^/]+)/(history|character)?$', 
        'index.php?country=$matches[1]&countrychild=$matches[2]', 
        'top' 
      );
    
      // 固定ページ
      add_rewrite_rule( 
        '^member/([^/]+)/(profile|works)?$', 
        'index.php?member=$matches[1]&memberchild=$matches[2]', // きっとここが問題?
        'top' 
      );
    
    }
    add_action( 'init', 'rewrite_init' );

    問題は第2引数('index.php?member=$matches[1]...')だと思います。

    カスタム投稿タイプ「country」の場合は
    'index.php?country=$matches[1]...'という第2引数で
    「example/com/country/japan/history」へのアクセスが可能です。

    しかし固定ページの場合は
    'index.php?member=$matches[1]...'という第2引数では
    「example/com/member/taro/profile」へのアクセスが出来ず404という状況です。

    ところが、この第2引数について調べてもサンプルが少なく、指定方法が不明です。

    たとえば
    'index.php?pagename=$matches[1]...'
    'index.php?member_id=$matches[1]...'
    'index.php?pagename=member&member_id=$matches[1]...'
    などの指定を試したのですが、やはり404でした。

    どのように書けば、固定ページ「member」の孫階層として「profile」や「works」というリンクを作ることができるでしょうか?

    (なお「profile」や「works」は管理画面から投稿するものではないので、上記のようなリライトルール追加での処理を考えています。)

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • Honda

    (@rocketmartue)

    空の固定ページは、作成済みでしょうか?
    リライトルールの書き換え後に、「設定」->「パーマリンク設定」の空更新はされていますか?

    トピック投稿者 fongafon

    (@fongafon)

    ぱっ!!!!
    パーマリンク設定を忘れていました……
    つい先日も教えて頂いたことでしたのに。死にたいです。
    どうもありがとうございます。

    ところで質問には「たとえば」として3種類の試行錯誤を書いておきましたが、いずれが正しい指定方法でしょうか?

    また、指定方法の一覧などはどこかにございませんでしょうか?

    Honda

    (@rocketmartue)

    「example/com/member/taro/profile」へのアクセス可能なものが正解ではないでしょうか?
    第1引数は、ルールを適用するパターンを指定。
    第2引数は、ルールにマッチした場合に書き換えるパターンを指定。
    というところまでは分かるのですが、私もそれほど詳しくは無いので、「add_rewrite_rule 孫階層」「正規表現 後方参照パターン」などで検索してみてください。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「固定ページにおけるリライトルールの第2引数について」には新たに返信することはできません。