web-dev-qa-db-fra.com

spécifier la condition meta_key/meta_value pour prev_post_link et next_post_link

J'ai un type de message personnalisé (CPT) appelé event. Chaque événement a un meta_key associé appelé event_date.

Je veux m'assurer que les événements avec event_date vide n'apparaîtront pas dans ma liste de tous les événements et dans la navigation des événements précédents/suivants lors de la visualisation d'un seul événement. Je veux aussi classer les événements par la event_date meta_key.

J'ai réussi à exclure les événements avec event_date vide et à les classer correctement dans la liste générale des événements en les raccordant à pre_get_posts.

Est-il possible de connecter des fonctions prev_post_link et next_post_link pour spécifier la condition de sélection meta_key et la condition d'ordre meta_key sans le plug-in? Y a-t-il un crochet pour ça?

[P.S. note]: J'ai aussi essayé d'utiliser le plugin Ambrosite Next/Previous Post Link Plus . J'ai compris comment commander des événements par meta_key. Cependant, les événements avec event_date meta_value vide apparaissent toujours dans la navigation précédente/suivante lors de l'affichage d'un seul événement.

Il ne semble pas possible de se connecter à WP avant le plug-in, car je pense qu'il construit son propre code SQL. Je pourrais utiliser ex_posts avec la liste de tous les identifiants d’événement à exclure, mais cela signifierait une requête supplémentaire à la base de données.

Merci beaucoup, Dasha

2
dashaluna

J'ai fini par utiliser le plugin Ambrosite Next/Previous Post Link Plus .

En ce qui concerne une clé méta event_date vide - j'ai ajouté du code pour empêcher l'enregistrement d'une publication si la valeur de la clé méta n'est pas correcte.

Regardez ces messages:

  1. Modification du statut de publication Wordpress lors de la publication
  2. ne publie pas de type de message personnalisé si un champ de métadonnées n'est pas valide
0
dashaluna

prev et next_post_link appellent finalement la fonction get_adjacent_post pour interroger la base de données, qui a pour filtre $ join $ where $ et $ sort vars.

1
Milo