2016-04-17 5 views
1

私のプロジェクトはビジネスリスティングのディレクトリです。ユニークではない用語のスラッグ、または特定のページとパーマリンクを構築するために使用できるものは何ですか?

個別のリスティングURLは、domain.com/five-star-carsのように単純に見えますが、WordPressがそのまま処理します。

しかし、リージョンベースのアーカイブに掘削する際に問題があります。それらには特定のURL構造が必要です。たとえば、オハイオ州のすべてのリスティングを表示する場合は、domain.com/ohioも簡単です。

しかし、我々はクリーブランド、オハイオ州クリーブランド、ネバダ州のすべてのリストを表示したい場合は - 私たちはこれをしたい:

  • domain.com/cleveland/oh
  • domain.com/cleveland/nd

私はCPT "Listings"とカスタムタクソノミー "Location"を作成しました。オハイオとネバダを親の言葉に、クリーブランドを両方の子供として追加しました。ここで

は問題です:第一クリーブランドのスラグはdomain.com/location/ohio/cleveland/であるが、第二1はdomain.com/location/nevada/cleveland-nevada/

になりました私はその用語がユニークでなければならないことを知ったので、それは問題です - URLを構築するために用語スラッグを使用することはできません。

私が次に行ったことは、州と都市を各リスティングのカスタムフィールド値として保存することでした。今、私はこのような何かを介してグローバル変数として(用語のナメクジとは違って、ユニークである必要はありません、)これらの値を使用することができます。

function loc_global_vars() { 
global $wp_query; 
$postid = $wp_query->post->ID; 
global $loc_vars; 
$loc_vars = array(
    'state'  => get_post_meta($postid, 'state', true), 
    'city'  => get_post_meta($postid, 'city', true), 
); 
} 
add_action('parse_query', 'loc_global_vars'); 

しかし、今、私はこだわっている:私の次のステップは何ですか?

Q1:これらの変数を使用してアーカイブページとパーマリンクを構築するにはどうすればよいですか?

Q2:すべてのアーカイブタイプに対してテンプレートをカスタマイズできるようにするにはどうすればよいですか?

また、私が見逃していることは明らかで、間違った方向を探していますか? したがって、一般的には:

質問3:これにはより良い方法がありますか?

答えて

1

Rewrite APIを使用すると、投稿メタを使用してURLを構築できます。

1)を設定しadd_rewrite_tag()

2)を経由してあなたのポストメタ用語を追加add_rewrite_rule('([^/]+)/?','index.php?state=$matches[1]&city=$matches[2]','top');

3)あなたは/wp-admin/options-permalink.php @設定パーマリンクを保存することで、例えば、あなたのフックを設定した後、書き換えルールをフラッシュします。

書き込みはhereです。

アドレッシングQ3では、WPルーティングシステムのCortexを使用できます。

2つのカスタムポストタイプ、都市用と地域用の2つのカスタムポストタイプを作成し、都市を地域ページに配置するカスタム税を作成するのはなぜですか?

+0

州のページには都市は存在しません。州や州ごとの詳細な説明は、http://www.familydaysout.com/kids-things-to-do-usa/ohioのように – bugnumber9

+1

@spnzr答えを例で明確にする必要があります。参考文献は、それがどのように機能するかを理解していない他の人々のためには、しばしば追跡が難しいためです。 – MinhTri

関連する問題