web-dev-qa-db-fra.com

Comment créer un profil d'utilisateur frontal avec un lien permanent amical et un déclencheur 404

J'ai implémenté la réponse acceptée de cette question et fonctionne très bien:

Comment créer un profil d'utilisateur frontal avec un permalien amical

Mais cela ne déclenche pas un 404 si vous entrez simplement quelque chose/user/asdasd

Je pense que cela doit arriver à un moment donné dans cette section de code:

if ( array_key_exists( 'user', $wp_query->query_vars ) ) {
    include (TEMPLATEPATH . '/user-profile.php');
    exit;
}

Donc, vérifiez les query_vars puis peut-être l'exécuter dans la base de données des utilisateurs pour vérifier?

Je ne suis pas vraiment sûr de savoir comment intégrer une redirection 404 si l'URL n'est pas un utilisateur.

Peut-être que c'est quelque chose que j'ai mis sur user-profile.php pour vérifier s'il renvoie quoi que ce soit à propos de l'utilisateur, sinon, chargez le modèle 404?

1
Harrison Miracle

Je crois que la solution ici serait aussi simple que vous l'avez décrite en général.
En supposant que $wp_query->query_vars['user'] contienne le nom d'utilisateur et non son ID:

if ( array_key_exists( 'user', $wp_query->query_vars ) ) {
    if ( username_exists( $wp_query->query_vars['user'] ) ) {
        include( TEMPLATEPATH . '/user-profile.php' );
    } else {
        include( TEMPLATEPATH . '/404.php' );
    }
    exit;
}
0
ClemC