fongafon
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 保存処理で早いのはどちらですか?フォーラム: 使い方全般
返信が含まれるトピック: タームのスラッグにドットを使う方法フォーラム: 使い方全般
返信が含まれるトピック: タームのスラッグにドットを使う方法フォーラム: 使い方全般
返信が含まれるトピック: add_rewrite_rule で、強制的に子階層を追加する方法失礼いたしました。入れ違いでコメント気づきませんでした。
例!
どうもありがとうございます!'wp'
というアクションフックを使うのですね。ほんっとに、どんなケースでもご存じですね。脱帽すぎます。できました。
いつもいつもいつも、本当にありがとうございます。
フォーラム: 使い方全般
返信が含まれるトピック: add_rewrite_rule で、強制的に子階層を追加する方法すみません
$_SERVER["REQUEST_URI"]
が何を取得するかわかっていませんでした。あとひょっとしたらですが、
function rewrite_init()
に書くのが間違っていたのでしょうか?下記のように
<head>
内に書きましたら、URLの変更には成功しました!//header.php <head> <?PHP //現在ページのURLの取得 $url = $_SERVER["REQUEST_URI"]; // リダイレクト前後のURLを指定 $source_url = '#/country/japan/#'; $dest_url = 'http://example.com/country/japan/history/'; //取得したURLがアクセスさせたくないURLかどうかの比較 $match = preg_match($source_url, $url); if($match === 1){ wp_redirect($dest_url, 302); exit; } ?> <?php wp_head(); ?> </head>
しかし、URLの変更には成功したのですが、ブラウザで「ページの自動転送設定が正しくありません。このアドレスへのリクエストに対するサーバーの自動転送設定がループしています。」というエラーが表示されてしまうことに…
なかなかです。泣
フォーラム: 使い方全般
返信が含まれるトピック: add_rewrite_rule で、強制的に子階層を追加する方法ありがとうございます。
preg_match()
については正規表現にすべきですよね。先日も教えて頂いたのにすみませんでした。wp_redirect()
については絶対パスにすればいいとのアドバイスかと思うので、とりあえず同様にしていいと解釈しました。それらを踏まえた下記ですができず、何がおかしいか今一度アドバイスをいただけませんでしょうか?
// リダイレクト前後のURLを指定(この2行を参考リンクに追加しました) $source_url = '^http:\/\/example.com\/country\/([^/]+)?$'; $dest_url = '^http:\/\/example.com\/country\/([^/]+)\/history?$';
フォーラム: 使い方全般
返信が含まれるトピック: add_rewrite_rule で、強制的に子階層を追加する方法なるほど。
add_rewrite_rule
は「>ブラウザの上のURLバーに表示されるURLはアクセスさせたくないページのURLのまま」なのですね。なんでもよくご存じですね…💧笑
となるとそちらの参考リンクを見ながら、質問の
function rewrite_init()
はこう変更すればいいのかと思ったのですが…変化なく。// デフォルトの子ページを指定【これができません】 add_rewrite_rule( '^country/([^/]+)?$', 'index.php?country=$matches[1]/history', 'top' );
↓ 変更
//現在ページのURLの取得 $url = $_SERVER["REQUEST_URI"]; // リダイレクト前後のURLを指定(この2行を参考リンクに追加しました) $source_url = '^country/([^/]+)/?$'; $dest_url = 'index.php?country=$matches[1]&countrychild=history'; //取得したURLがアクセスさせたくないURLかどうかの比較 $match = preg_match('<.$source_url.>', $url); if($match === 1){ wp_redirect($dest_url, 302); exit; }
上記
(この2行を参考リンクに追加しました)
を自分で追加したのですが、ここが問題でしょうか?またはこの部分を次のようにも試したのですがやはりだめで…もし他にも試すべきことがございましたら、また宜しくお願い致します。
// リダイレクト前後のURLを指定(この2行を参考リンクに追加しました) $source_url = home_url().'^country/([^/]+)/?$'; $dest_url = home_url().'^country/([^/]+)/history/?$';
- この返信は3年、 10ヶ月前にfongafonが編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: add_rewrite_rule で、強制的に子階層を追加する方法@ishitakaさま、こんにちは。いつもお世話になっております。
やってみたのですが、やはり
example.com/country/japan/
にアクセスしたときのURLは
example.com/country/japan/
のままで、
example.com/country/japan/history/
に変化するということはありませんでした。きちんとコピペしてアップロードしましたし、アップロード後にパーマリンク更新もしたのですが。
フォーラム: 使い方全般
返信が含まれるトピック: タクソノミー・タームの操作でこのような一覧は表示できるのでしょうか。まず文章を読み返して修正があればなおしていただきたいのですが、
とりあえず、
下記
【条件】
に該当する記事一覧を取得したい。ということでよろしいでしょうか?
【条件】 投稿タイプ:product │ ├ タクソノミー:product-cat │ └ ターム:watch │ ├ タクソノミー:brand │ ├ ターム:rolex │ └ ターム:casio
つまり、
・「product」に属し、かつ
・「product-cat」の「watch」に属し、かつ
・「brand」の「rolex」および「casio」に属す
という記事でよろしいでしょうか?フォーラム: 使い方全般
返信が含まれるトピック: 固定ページにおけるリライトルールの第2引数についてぱっ!!!!
パーマリンク設定を忘れていました……
つい先日も教えて頂いたことでしたのに。死にたいです。
どうもありがとうございます。ところで質問には「たとえば」として3種類の試行錯誤を書いておきましたが、いずれが正しい指定方法でしょうか?
また、指定方法の一覧などはどこかにございませんでしょうか?
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿に子階層URLを作る方法なるほど、「ぜんぶ書いておけばとりあえず正解でしょ」と勝手な解釈で突き進んでいました。笑
最後までどうもありがとうございます。フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿に子階層URLを作る方法ごめんなさい!すみません!!申し訳ございません!!!
出来ました。仰る通り、リライトルールの更新をしていなかったせいだったようです。
「はい、間違いなくしています。」と申し上げたのは、シンプルな方についてだけで、ご提示のコードの方では更新していなかったための発言でした。
お手を煩わせてしまい、本当にすみません。ほんっとにすみません。
—
ひとつ不思議なのは、シンプルな方では効かないということです。
こちらです。function rewrite_init() { add_rewrite_rule( 'http://example.com/country/japan', 'http://example.com/country/ameria', 'top' ); } add_action('init', 'rewrite_init');
こちらはやはり、リライトルールを更新しても効かず「japan」が表示されてしまう、というのが不思議です。
まぁ実験のために書いた不要な機能なので効かなくても構わないのですが、なぜ効かないのかお分かりになりますでしょうか?
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿に子階層URLを作る方法日本語版codexで「重要」とあるやつですね。functions.phpの変更後、何も変更せず更新。はい、間違いなくしています。
1つ前のシンプルなのさえ効かないって、おかしいですよね。
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿に子階層URLを作る方法思い切ってシンプルなのを書いてみたのですが、これは普通に「japan」の方が表示されました。
function rewrite_init() { add_rewrite_rule( 'http://example.com/country/japan', 'http://example.com/country/ameria', 'top' ); } add_action('init', 'rewrite_init');
これはもう、
add_rewrite_rule
自体が作動しないような、何か謎の設定をしているとしか思えませんよね…フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿に子階層URLを作る方法ご丁寧にどうもありがとうございます。
はっ、➂で分岐させるためにも、➁は必須だったのですね。
なるほど流れが掴めたような気がします。ただご提示のコードで404になってしまうようでした。
そしてそもそもの話として、先ほどわたしが「➀ができました」と言った次のコードがぜんぜんできておらず、これも404でした。
function rewrite_init() { add_rewrite_rule('^country/japan/history/?', 'index.php?post_type=country&page_id=$matches[1]', 'top'); } add_action('init', 'rewrite_init');
ちなみに次も404です。
function rewrite_init() { add_rewrite_rule( '^country/([^/]+)/(history|character)?$', 'index.php?country=$matches[1]', 'top' ); } add_action('init', 'rewrite_init');
—
あとこれは関係ないかもしれませんが…
「example.com/hoge/japan」や「example.com/fuga/japan」にアクセスすると
「example.com/country/japan」にリダイレクトされるという現状があります。hogeやfugaというカスタム投稿タイプは存在ないしリダイレクト設定もしてないように思うのですが、これはWPの初期設定でしょうか?
それともわたしが何か謎の設定をしているせいで生じるリダイレクトでしょうか?
もしかしてこの謎の設定のせいでご提示のコードが404になってしまうということかな?と思い、関係ないかもしれませんが書かせて頂きました。
もしこれらの少ないヒントから何か対策など思いつくものがあったらまたご意見いただけましたら幸いです。