web-dev-qa-db-fra.com

Vérifier si la publication est en cours de rédaction ou en attente de révision

Chacune de nos publications sont des critiques pour des jeux individuels et nous devons parfois mettre le jeu en pause en le changeant de critique publiée à critique en attente. Le problème est que si la page est indexée par les moteurs de recherche, toute personne essayant de visiter le lien obtiendra un 404, ce qui n'est évidemment pas souhaitable. J'aimerais plutôt rediriger vers une liste de tous nos jeux.

Je peux penser à quelques options mais je ne suis pas sûr de ce qui serait préféré.

Je pourrais simplement faire une redirection temporaire 302 de ce message à la page de liste de jeux. Je ne suis toutefois pas tout à fait sûr de savoir comment cela fonctionnera pour le référencement.

Je pourrais également vérifier si le message est en attente de révision (dans la page 404?), Et si tel est le cas, affichez la page de liste des jeux. Je ne suis pas tout à fait sûr de savoir comment s'y prendre. J'ai essayé de trouver une fonction pour vérifier si elle était en attente de vérification, mais je n'ai pas eu de chance.

2
Kyle

post_status fait partie de l'objet $post que vous pouvez utiliser pour déterminer s'il est publié, un brouillon, en attente, etc.

if( $post->post_status == 'pending' )
    // do stuff
3
Jared

Parfois, il peut être plus facile d’utiliser get_post_status() à la place. Exemple:

if( get_post_status() == 'pending' ) {
  // do stuff
}

Docs pour la fonction get_post_status( $ID ) ($ID est facultatif et correspond par défaut à l'ID de publication en cours): https://codex.wordpress.org/Function_Reference/get_post_status

0
jmarceli