URL des Benutzerprofils neu schreiben, um menschenfreundlich zu sein

Ich hoffe du kannst helfen. Ich habe versucht, dem zu folgen und bin nicht in der Lage, das gewünschte Ergebnis zu erzielen.

Ich verwende eine statische WordPress-Seite als Basis für die Anzeige aller Benutzerprofile am Frontend.

Diese Seite ist: mydomain.com/user-profile und die Seite hat eine ID von 31848

Wenn das Profil jedes Benutzers auf dieser Seite geladen wird, sieht die URL so aus (wobei ‘2053’ die ID des aktuellen Benutzers ist, der angezeigt wird):

mydomain.com/user-profile/?users_filter=2053 

Stattdessen möchte ich, dass es so aussieht:

 mydomain.com/user-profile/username 

Ich habe versucht zu folgen und bin nicht in der Lage, dies zur Arbeit zu bringen.

Jede Hilfe würde sehr geschätzt werden.

Beste Wünsche, Andrew

Solutions Collecting From Web of "URL des Benutzerprofils neu schreiben, um menschenfreundlich zu sein"

Der erste Schritt besteht darin, eine Abfrage-Variable hinzuzufügen, damit WordPress sie erkennt und ihren Wert in den Umschreibungsregeln analysiert.

 function wpd_query_vars( $query_vars ) { $query_vars[] = 'users_filter_name'; return $query_vars; } add_filter( 'query_vars', 'wpd_query_vars' ); 

Als Nächstes fügen Sie eine Rewrite-Regel hinzu, um die Anfragen zu erfassen und den users_filter_name :

 function wpd_user_rewrite_rule(){ add_rewrite_rule( '^user-profile/([^/]*)/?', 'index.php?page_id=31848&users_filter_name=$matches[1]', 'top' ); } add_action( 'init', 'wpd_user_rewrite_rule' ); 

Vergessen Sie nicht, die Regeln zu überschreiben, nachdem sie sich geändert haben.

Dann können Sie auf die Abfrage var in der Vorlage zugreifen und diesen Benutzer laden:

 if( $users_filter_name = get_query_var( 'users_filter_name' ) ){ $user = get_user_by( 'slug', $users_filter_name ); if( !empty( $user ) ){ echo $user->ID; // your original users_filter value } }