web-dev-qa-db-fra.com

Quelle est la structure du terme shortlink?

Je sais que je peux accéder aux publications ayant cette structure d'URL: mysite.com/?p=X où X est l'identifiant de publication. C'est pratique car cela fonctionnera même si le lien permanent pour ce poste est modifié.

Mais vous vous maintenant s'il existe une structure similaire pour les termes (catégories, tags ...)?

J'ai essayé

?t=term_id

Mais ça ne marche pas.

Merci

1
Matthieu

Eh bien, si vous faites référence à ce que sont les clés de la chaîne de requête, cela dépendra de la taxonomie avec laquelle vous travaillez, par exemple.

  • catégories : vous recherchez ?cat=cat_id
  • tags : vous recherchez ?tag=tag_slug
  • taxonomie personnalisée : cela dépend du slug de la taxe mais cela ressemblera à ?taxonomy_slug=item_slug

Vérifiez la définition des défaut WP clés de requête vars pour plus d'informations.

MODIFIER

Selon votre commentaire, j'ai pensé partager cela aussi. Si vous souhaitez/souhaitez effectuer une recherche par term_id (indépendamment de la taxe personnalisée ou non), vous devez ajouter une chaîne de requête personnalisée (vars de requête) et modifier la requête principale pour ce faire.

Voici comment vous pouvez faire cela

// Add your custom query var so WP can listen for that query string too
add_filter( 'query_vars', 'my_add_custom_query_vars' );
function my_add_custom_query_vars( $vars ){
  $vars[] = 'my_var';
  return $vars;
}


// Then modify the query to include all taxonomies, searching by tax ID
add_action( 'pre_get_posts', 'my_custom_query' );
function my_custom_query( $query ){
  $my_id = absint( get_query_var( 'my_var' ) ); // retrieve the var defined above

  $tax_query_args = array(
    array(
      'field'         => 'term_taxonomy_id',
      'terms'         => $my_id,
    ),
  );

  $query->set( 'post_type', 'any' );
  $query->set( 'tax_query', $tax_query_args );

}

Mon exemple pourrait être développé pour écouter plusieurs term_id afin que vous puissiez utiliser une chaîne de requête telle que ?my_var=1,2,3 pour renvoyer toute publication dans term_id1 OR 2 OR 3 ou ?my_var=1+2+3 pour renvoyer toute publication dans term_id1 AND 2 AND 3. Mais en tant que concept de base général, voici comment procéder.

2
bynicolas