WordPress : Comment afficher les articles en lien hypertexte avec des slugs imbriqués ?

Publié par Jean-Michel le

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 – la page d’affichage du slug est la page slug, et family1 et family2 sont le nom des groupes que j’ai stockés dans mon tableau personnalisé.
membres est l’onglet qui affiche le nombre d’utilisateurs dans chaque groupe Veuillez répondre à cette question

Solution n°1 trouvée

Ceci peut être réalisé en ajoutant des règles de réécriture.

Tout d’abord, ajoutez les variables 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 à la fois les 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 variables de requête n’importe où après l’ parse_queryaction avec get_query_var():

if( $family = get_query_var( 'wpd_family' ) ){
    echo 'family: ' . $family;
}

if( $members = get_query_var( 'wpd_members' ) ){
    echo 'members: ' . $members;
}

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *