web-dev-qa-db-fra.com

Comment définir des codes d'état tels que 401 et 403?

Définir un 404 dans WordPress peut être fait assez facilement en utilisant la méthode set_404() de WP_Query et la fonction status_header(). Voici un exemple tiré de WP::handle_404():

$wp_query->set_404();
status_header( 404 );
nocache_headers();

Si je souhaitais que mon archive de balises ne soit accessible qu'aux utilisateurs authentifiés, définir une page 404 pour les utilisateurs non authentifiés n'aurait pas de sens, car la ressource existe, mais n'est pas accessible aux utilisateurs déconnectés.

Ma question

Comment définirais-je un 401 dans WordPress?

2
henrywright

De la même manière que dans tout autre programme PHP:

header("HTTP/1.1 401 Unauthorized");
exit;

WordPress a une gestion spéciale pour 404 car il existe un modèle 404. Habituellement, si quelque chose se passe comme un 401, il n'y a pas de modèle spécial, mais vous pouvez utiliser wp_die qui affichera un message dans une interface utilisateur simple.

header("HTTP/1.1 401 Unauthorized");
wp_die( 'forbidden' );

Cela affichera le message dans un rectangle blanc avec des bords arrondis et le texte sans empattement sur un fond gris, puis appelera exit/die

0
Tom J Nowell