サポート » 使い方全般 » URLリダイレクト・検索について

  • 解決済 shinji2525

    (@shinji2525)


    完全にWPで構築中のサイトです。
    特定のURLがあった場合、それを「検索条件」にする方法はありませんでしょうか?

    具体例を挙げますと、「tokyo」というカテゴリーを作って、その中に「toshimaku」というサブカテゴリーを作ったとします。その状態のURLが「/tokyo/toshimaku/」というところまでは実装済みです。
    ※パーマリンク設定を「/%category%/%post_id%/」としています。

    この状態で、例えば「/tokyo/kensaku/」とした場合に、URLは変えずに「tokyo」カテゴリー内から「kensaku」というタグで検索するようなことは出来ますでしょうか?
    さらには「/tokyo/toshimaku/kensaku/」とした場合は「toshimaku」カテゴリー内からタグ検索をしたいのです。

    根本的な仕組みから変える方法でも可能なので、何か方法がありましたらご教示いただきたいと思います。
    (例えばURLが「/tokyo/toshimaku/kensaku/」の場合は「tokyo」「toshimaku」「kensaku」タグすべてに合致する一覧を取得できるとかでしょうか…)

    よろしくお願い致します。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • ワードプレスはGETの書式で検索が可能だと思うのでアドレスを変換してはいかがでしょうか。
    ?s=検索文字列 というアドレスに飛ばすようにすれば検索結果がでると思います。

    検索されている状況とページ表示のURL表示を同じにするということはあまり良いとは思えないのですが、同一の書式で表示結果がページまたは検索結果のように分けるのであれば

    ・変換のアドレスをみな検索構文へ解釈するように htacess に書き込む
    ・特定のページ表示の場合に function.php で置き換え動作をする

    など、アドレスの書き方を命令文に取り込む方法や、ワードプレスで書き換える方法など規模と用途によってあるかと思います。

    ページが存在しない場合に、404ページをURLによっては候補表示にする機能を乗せたほうがいいのではないかと個人的には思います。
    簡単なデメリットとしての1例を申しますと、変更や修正、問題発生時に「このページは検索を読み出すものだったので変更がまったく反映されなかったんだ」というトラブルのもとにもなりかねないと思います。

    検索や抽出のページであれば、検索と筆頭にあるページを作成し動作としてパラメータを渡してあげたほうがよいかとおもうのですがいかがでしょうか。

    トピック投稿者 shinji2525

    (@shinji2525)

    msio様

    ご返信、ありがとうございます!

    一通り読ませていただいたのですが、勘の悪い私にはいまいち理解ができておりません…。
    確認なのですが、ご教示いただいた「.htaccess」や「functions.php」へ正しく記述ができれば、
    サブカテゴリーを設定した「/tokyo/toshimaku/」へのアクセスはそのまま「/tokyo/toshimaku/」が表示され、「/tokyo/kensaku/」へのアクセスは「/tokyo/?tab=kensaku」(タグ検索の場合)が実行されるという解釈で合っておりますでしょうか?

    上記の場合の記述例のようなものを教えていただくわけにはいきませんでしょうか?
    お手数をお掛けしますが、よろしくお願い致します。

    相互の理解は合致していると思います。
    .htaccess の書き換えにつきましては以下のような要領になります。

    #リダイレクト書き換え開始(サーバーによっては禁止されているところもあります
    RewriteEngine On
    #リダイレクトをする対象(動作本体から対象へのパス これを書き込む階層が対象のものより上である可能性があるため
    RewriteBase /tokyo/
    #書き換え(tokyo以降があれば、tokyo以下の動作について指示する [L]書き換え終わり
    RewriteRule ^(.*)/$ /tokyo/?tab=$1 [L]

    設置の場所はワードプレスのルートディレクトリ(いちばん上のフォルダ)にある htaccess になると思います。
    書き込む位置は ワードプレスの RewriteEngine On よりも上であるところになると思います。

    これは、ワードプレスがファイルやディレクトリがない場合 index.php が処理するという設定のために書き換え用のアドレス実体がないと「ファイルやディレクトリがない場合は」の動作でトップ画面にさし戻ってしまうからです。
    そして後ろの tokyo 以下はその視点からのパスになりますので、$i=(,*)にある部分が取得されます。
    おそらくtokyo/kensaku/が返ってくると思いますのでsearch.phpのほうでパラメータを整理してあげる必要があると思います。
    tokyo という項目が固定であるならば ^tokyo/(.*)/$ という書き方で「kensaku」のみ取ってくる手もありかなと思います。
    47都道府県についてある、動的に変化するデータとしてあるならば全列挙またはプログラムの仲介が必要かと思います。

    実体として tokyo というディレクトリを作るのもありですが、すると記事のURLと実在するURLが一致してしまうので様々に問題があると思います。
    tokyo というディレクトリに誘い込んで、目的のもの以外は逆に上の index.php に戻すなど、いずれにしても諸条件みたせるようテストがたくさんいると思います。

    この時点でまだお話を進めて大丈夫でしょうか。
    これにより他のページにも大きく影響がでることが予測されますし、 function.php への追記要領も同程度に手間のかかることと規模の把握が必要になると思います。

    これにて危惧されることは

    ・ワードプレス本体のアップデートで変化のおこる可能性
    ・CMSサイトとしての機能的規模変更に伴う問題の発生(記事の追加、メニュー、ページの移動で、など)
    ・一般的でない方(コンピュータに詳しい方など)からの動作に対する不快感(動作に統一感がなくなると、クリックして何が表示されるか不安になる
    ・複数人での管理がある場合現状の把握に周知と申し送りが必要

    かなと思います。

    function.php の場合はプログラムでコードが多めになるかと思いますが煩雑さとデメリットのバランスは htaccess とおおよそ総量としてかわらないと思います。
    ご検討くださいませ。

    トピック投稿者 shinji2525

    (@shinji2525)

    msio様

    ご連絡が大変遅くなりました!

    別の案件でバタバタしており、合間を縫って実装に取りかかっておりました。
    msio様からの投稿を、何度も何度も読み返して1行ずつ把握するまで読み返して、ようやく思っている形に近づいてまいりました。

    msio様の迅速かつ丁寧なご回答のおかげです。本当に助かりました!
    (今回の処理に関しては解決策が1つでは無いと考え、某掲示板にも書き込ませていただいたのですが、こちらのフォーラムに辿りついたらしく「マルチポストには回答しません」とバッサリ切り捨てられました…。残念な話です…。)

    また何か困った時には質問させていただきます。
    本当にありがとうございました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「URLリダイレクト・検索について」には新たに返信することはできません。