Comment pouvez-vous déclencher un 404 lorsque vous utilisez des vars de requête personnalisés? J'ai des règles de réécriture écrites pour une requête personnalisée var, mais si vous demandez une URL pour la requête var qui doit techniquement être un 404, elle retourne une page normale WP, mais pas de contenu. car rien n'existe techniquement pour l'URL.
Il y a une action spécifiquement pour cela:
function my_parse_query( $wp_query ) {
if ( $wp_query->get( 'my_custom_var' ) > 42 ) {
$wp_query->set_404();
status_header( 404 );
}
}
add_action( 'parse_query', 'my_parse_query' );
Cela devrait charger le modèle 404.php dans votre thème, si vous en avez un. Sinon, il retombera sur index.php.
Cela déclenchera également un code d'état HTTP 404.
Pour plus d'informations, voir parse_query .
Ajoutez un 404.php à votre thème et regardez s'il s'appelle.
<!doctype>
<title>404</title>
<p>404 – Mwah!</p>
Le plus important: les vrais en-têtes HTTP, ici le code de statut. Vous pouvez le voir avec les outils de développement de vos navigateurs sousnetwork. Voici une capture d'écran pour http://wordpress.stackexchange.com/404
dans Opera Dragonfly:
Si vous obtenez toujours un code d'état 200, examinez les variables globales $wp
et $wp_query
. Ils vous donneront plus de détails sur la ressource récupérée.