重要な質問
どのように私はこのようなネストスラッグを作成するのですか -
127.0.0.1/wordpress/displaypage/family1/members/
127.0.0.1/wordpress/displaypage/family2/members/
ここで - slugdisplaypageはページslug、そしてfamily1とfamily2は私のカスタムテーブルに保存したグループの名前です。メンバーは各グループのユーザー数を表示するタブですこの質問に回答してください
これは 書き換えルールの追加 によって実現できます。
まず、カスタム値をルールに格納する クエリ変数の追加 :
function wpd_family_query_var( $query_vars ) {
$query_vars[] = 'wpd_family';
$query_vars[] = 'wpd_members';
return $query_vars;
}
add_filter( 'query_vars', 'wpd_family_query_var' );
次に、displaypage/family/
とdisplaypage/family/members/
の両方のリクエストをキャプチャするためのルールを追加します。
function wpd_add_family_rewrite_rules() {
add_rewrite_rule(
'displaypage/([^/]+)/?$',
'index.php?pagename=displaypage&wpd_family=$matches[1]',
'top'
);
add_rewrite_rule(
'displaypage/([^/]+)/members/?$',
'index.php?pagename=displaypage&wpd_family=$matches[1]&wpd_members=true',
'top'
);
}
add_action( 'init', 'wpd_add_family_rewrite_rules' );
忘れないでください、変更した後は 書き換えルールをフラッシュ する必要があります。
そうすると、 get_query_var()
を使って parse_query
アクションの後 のどこでもあなたのクエリvarsの値にアクセスすることができます。
if( $family = get_query_var( 'wpd_family' ) ){
echo 'family: ' . $family;
}
if( $members = get_query_var( 'wpd_members' ) ){
echo 'members: ' . $members;
}