こんにちわ、tsutushi0628さん
WordPress 側でパラメーターを認識できていないのではないでしょうか?
以下をお使いのテーマの functions.php に追加してみてください。
function my_query_vars( $vars ) {
$array = array( 'title_id' );
return array_merge( $array, $vars );
}
add_filter( 'query_vars', 'my_query_vars' );
複数オリジナルのパラメーターを追加したい場合は、array( ‘title_id’ ) の部分を array( ‘title_id’, ‘hoge’, ‘fuga’ ) みたいにしてみてください。
KUCKLUさま
お世話になっております。
早速のご返信ありがとうございます。
ご提示頂いたコードを追加いたしましたが、GETパラメータは取得できない状態です。
動き的に index.php?p=xx この部分までは動作しているようなのですが…
もし更にアドバイス・ヒントなどがございましたら、恐縮ではありますが
頂戴できますと幸いです。
tsutushi0628さん
思ったのですが
設定されているリライトルールでは、post id がxxのページまたはポストにリダイレクトされますよ…
具体的に、これはどういった事されたいのか、少々イメージがつかめていないのですが…
//スラッグ名からidを取得
$id = get_page_by_path( 'sample-page' );
//idからURLを取得し、URLパラメーターを付けたURLを出力
echo esc_url( add_query_arg( array('title_id' => '1234'), get_permalink( $id ) ) );
// URLパラメーターのtitle_idの値を主力
echo esc_html( get_query_var( 'title_id' ) );
とすれば、URLパラメーターは付きます。
KUCKLUさま
ご返信ありがとうざいます。
>設定されているリライトルールでは、post id がxxのページまたはポストにリダイレクトされますよ…
上記で問題ありません。
post_id=xxのページは固定ページでございまして、その固定ページにGETパラメータを渡してやりたいのです。
取得したGETパラメータにより、PHPで内部処理を行い、画面の見せ方を変えるという使い方を想定してます。
ご指摘の通り、確かにリダイレクトされてしまいます。
これをなんとか、リライトできるように設定したいのですが…
tsutushi0628さん
ただGETパラメーターを渡したいだけでしたら…リライトルールを追加する必要がないと思います。そもそもリンクはクリックとかでアクセスしてくると思うので…。
質問の答えとしては、一応、こちらで実現できると思います。
こちらのコードは追加しておいてください。
add_rewrite_rule('(title)/([^/]*).html/?$','index.php?page_id=xxx&title_id=$matches[2]','top');
あとは、固定ページで
esc_html( get_query_var( 'title_id' ) );
を echo するなり変数に代入していただければと思います。
ただ単純にGETパラメーターを取得したいのでしたら、こちらでご提示させていただいたコードを functions.php に追加し、こちらでご提示させていただいたコードでパラメーター付きのURLを生成しリンクさせて、あとは、固定ページのテンプレートファイルで get_query_var 関数を使って値を取得してあげれば実現は出来ると思いのですが…