Question importante
Comment créer des limaces imbriquées comme celle-ci -
127.0.0.1/wordpress/displaypage/family1/members/
127.0.0.1/wordpress/displaypage/family2/members/
Ici - le slug displaypage est le slug de la page et family1 et family2 sont le nom des groupes que j’ai stockés dans ma table personnalisée. membres est l’onglet qui affiche le nombre d’utilisateurs dans chaque groupe. Veuillez répondre à cette question.
Ceci peut être réalisé en en ajoutant des règles de réécriture .
Tout d'abord, ajoutez les vars de requête qui stockeront les valeurs personnalisées dans nos règles:
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' );
Ensuite, ajoutez les règles pour capturer les deux requêtes displaypage/family/
et 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' );
N'oubliez pas que vous devez vider les règles de réécriture après les avoir modifiées.
Vous pourrez alors accéder aux valeurs de vos vars de requête n'importe où après l'action parse_query
avec get_query_var()
:
if( $family = get_query_var( 'wpd_family' ) ){
echo 'family: ' . $family;
}
if( $members = get_query_var( 'wpd_members' ) ){
echo 'members: ' . $members;
}