Unterordner dynamisch mit Ländercode in WordPress mit PHP umschreiben

Ich weiß, dass diese Frage so oft gestellt wurde, aber ich fand keine funktionierende Lösung oder ein Beispiel, das ich verwenden kann, um mein Problem zu beheben.

Ich habe an einer Kundenseite gearbeitet. Es gibt zwei ähnliche Websites, eine für ihr eigenes Land und eine zweite für andere Länder.

Ihre Hauptwebsite befindet sich im Stammverzeichnis des Servers und der zweiten Website im Unterordner.

Nun, was ich will, ist dynamische URL-Rewrite für die zweite Website, die in Unterordner mit dem Ländercode des besuchenden Benutzers gehostet wird.

Für z

http://example.com
http://example.com/subfolder/

sind die URLs.

Ich möchte, dass http://example.com/subfolder/ in diesen http://example.com/country_code/ country_code wird, wobei country_code ein Besucher-Ländercode im ISO-Format ist, der die PHP-function durchläuft.

Wenn der Benutzer also aus den USA stammt, muss der subfolder in us geändert werden. Die neue URL sollte nun http://example.com/us/ lauten.

Ich möchte, dass dies für alle Arten von Seiten funktioniert, sei es eine Seite, eine Post, eine Kategorie, ein Tag oder eine Autorenseite.

Also nochmal, http://example.com/subfolder/any-type-of-url/ => http://example.com/country_code/any-type-of-url/

Erinnern Sie sich an country_code ist der Benutzer / Besucher-Ländercode im ISO-Format.

Lassen Sie es mich wissen, wenn jemand mehr Informationen dazu benötigt. Danke im Voraus.

PS: Ich habe versucht, dies mit der function add_rewrite_rule() in WP zu erreichen.

Solutions Collecting From Web of "Unterordner dynamisch mit Ländercode in WordPress mit PHP umschreiben"

Ich denke, der schwierigste Teil ist, den Unterordner Teil von der URL mit WordPress-Website an beiden Orten zu entfernen.

Was passiert, wenn Sie den Namen des Unterordners in “international” ändern und die Umschreibregeln so ändern, dass ISO-Codes vor den URLs vorhanden sind?

Also hättest du:

Um die ISO-Codes hinzuzufügen, versuchen Sie es selbst mit dem rewrite_rules_array- Filter oder verwenden Sie einfach ein Übersetzungs-Plugin wie Polylang , das diese Codes bereits automatisch zur URL hinzufügt und sogar eine Browser-Spracherkennung durchführen kann.

Um es selbst zu tun, würde ich so etwas tun: (sehr einfaches Beispiel)

 function add_iso_codes_to_url( $rules ) { $new_rules = []; $iso_codes = '(?:us/|uk/)?'; // home page $new_rules[$iso_codes . '/?$'] = 'index.php'; // Change other rules foreach ( $rules as $key => $rule ) { if ( substr( $key, 0, 1 ) === '^' ) { $new_rules[ $iso_codes . substr( $key, 1 ) ] = $rule; } else { $new_rules[ $iso_codes . $key ] = $rule; } } return $new_rules; } add_filter( 'rewrite_rules_array', 'add_iso_codes_to_url' );