私は写真のコレクションであるphoto_group
のカスタムコンテンツタイプを持っています。
私はmysite.com/photos
に行き、そのページに私のすべての写真グループをダンプしてもらいたいです。
「ページ」を作成してテンプレートを設定せずにこれを行うにはどうすればよいですか。それとも私がしなければならないというアプローチですか?
ありがとう
ローム、
あなたが提案した方法は確実に機能し、おそらく最も簡単な方法です。しかし、これが理想的ではないケースを確実に見ることができます。これをより「プログラム的に」達成するには、次のことを行う必要があります。
1)新しいクエリ変数を設定します
2)そのクエリを理解するための新しい書き換え規則を生成する
3)そのクエリ変数が一致したときにテンプレートにリダイレクトします。
ここにあなたを助けるためのいくつかのコードがあります。
1:クエリvarを追加
function query_vars( $public_query_vars ) {
$public_query_vars[] = 'romes_var';
return $public_query_vars;
}
add_filter( 'query_vars', 'romes_query_vars' );
2:クエリvarを処理するために書き換えルールを関連付ける
function romes_generate_rewrite_rules( $wp_rewrite ) {
$new_rules = array();
$new_rules['(photos)/?$'] = 'index.php?romes_var=$matches[1]';
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action( 'generate_rewrite_rules', 'romes_generate_rewrite_rules' );
3:クエリvarを検出してテンプレートにリダイレクトする
function romes_template_redirect() {
if ( 'photos' == get_query_var( 'romes_var' ) ) {
load_template( get_stylesheet_directory_uri() . '/template-photos.php' );
exit();
}
}
add_action( 'template_redirect', 'romes_template_redirect' );
このコードは特にテストされていませんが、ほとんどの場合は問題ありません。このコードを使用してスクリプトを実行する前に、必ず書き換え規則をフラッシュしてください(単にパーマリンクのページにアクセスしてください)。
これを行うには、カスタム分類法が必要です。 mysite.com/photos
のページを作成する必要はありません。分類ページにすることができます。たとえば、 "photos"という名前のカスタム分類法を作成したら、taxonomy.phpをtaxonomy-photos.phpにコピーできます。カスタム分類ページテンプレートファイルとして。
WordPress Codexで確認してください。カスタム分類法Codex
いくつかのプラグインを使用すると、これらのカスタム分類法を非常に簡単な方法で作成できます。好きなものを見つけてください。 http://wordpress.org/extend/plugins/search.php?q=Custom+Taxonomies
がんばろう!