J'ai configuré un CPT pour agir de la même manière que les publications, mais utilisé pour publier les détails de l'événement.
Le fait est que certains des postes sont dans le futur et que ceux-ci ont une date future fixée sur eux. Le problème est que les utilisateurs normaux ne peuvent pas voir ces messages.
Donc:
- Comment puis-je modifier archive-events.php pour lister les futurs messages aussi? Afficher les futurs messages lointains en premier et les plus anciens en dernier tout en conservant la pagination.
- Comment puis-je faire en sorte que lorsqu'un utilisateur clique sur un futur message, il n'obtienne pas de page 404 introuvable car le message n'est pas encore techniquement publié?
Réponses:
J'ai pu résoudre cela moi-même. Mon code complet pour l'enregistrement du CPT:
Ainsi, pour permettre aux publications d'être visibles pour tous les utilisateurs, même si elles sont définies à l'avenir, vous devez procéder comme suit:
Nous supprimons l'action qui concerne la publication ultérieure et appliquons notre propre action pour la forcer à être publiée malgré sa date future avec:
Il ne nous reste plus qu'à afficher les futurs articles sur la page d'archive en filtrant
posts_where
:la source
__()
appels ou n'utilisez pas de fonction.Brady, je ne vous remercierai jamais assez de m'avoir conduit vers cette solution. Mon client avait déjà défini toutes les dates de l'événement sans champ personnalisé, et je n'allais pas revenir en arrière et tout changer. Votre code a initialement généré une erreur lors de la publication, mais il a fonctionné avec les légères modifications suivantes (faites pour correspondre au format utilisé dans wp-includes / post.php):
et
J'ai passé un certain temps à essayer de comprendre cela. J'espère que cela aide quelqu'un d'autre!
la source
Sans changer le statut de la publication, vous pouvez également afficher les publications futures uniques et les archiver avec pre_get_posts:
la source