✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

So entfernen Sie Sonderzeichen aus Permalinks

12

Wann immer Sie mit WordPress und APIs von Drittanbietern arbeiten, besteht immer die Möglichkeit, dass Sie auf Probleme stoßen, bei denen die API von Drittanbietern nicht darauf vorbereitet ist, bestimmte Zeichen zu verarbeiten, die in einem Permalink vorhanden sind.

Abhängig von den Permalink-Einstellungen kann dies jedoch ein Problem sein oder auch nicht. Beispielsweise können Sie Ihre Permalinks für jeden Beitrag auf etwas wie ?p=123 setzen. In diesem Fall ist es kein großes Problem.

Wenn Sie jedoch „hübsche Permalinks” verwenden und Ihr Permalink so etwas wie ein Markensymbol oder ein Copyright-Symbol enthält, kann dies zu Problemen führen, wenn Sie mit dieser Drittanbieter-API kommunizieren.

Erstens, wenn Sie hübsche Permalinks verwenden, werden diese im Allgemeinen aus dem Beitragstitel erstellt. Wenn Sie also etwas wie All About The Acme Machine™ verwenden, wird ein Permalink generiert, der so etwas enthält.

Beispielsweise können Sie WordPress so etwas automatisch generieren lassen: https://acme.com/all-about-the-acme®-machine/

Und wenn es an der Zeit ist, diese Informationen an eine Drittanbieter-API zu senden (oder zu versuchen, sie mit etwas zu verarbeiten, das nicht für solche Zeichen vorbereitet ist), werden Sie in Schwierigkeiten geraten.

Glücklicherweise bietet WordPress einen Haken, der es uns ermöglicht, Permalinks zu verarbeiten, bevor sie in die Datenbank serialisiert werden. Das ist nämlich der Hook wp_insert_post_data.

Und in diesem Fall funktioniert es so:

  1. Richten Sie den Hook so ein, dass er spät im Serialisierungsprozess ausgelöst wird.
  2. Suchen Sie nach Zeichen, die problematisch sein könnten,
  3. Ersetzen Sie sie durch eine leere Zeichenfolge,
  4. Geben Sie die aktualisierten Informationen zur Serialisierung an WordPress zurück.

Hier ist ein Beispiel, das versucht, verschiedene Symbole wie Urheberrechtssymbole, Markensymbole, Registrierungssymbole und andere Varianten davon sowohl in codierten Formaten als auch in den codierten Äquivalenten zu entfernen:

Beachten Sie, dass die Funktion die Beitragsdaten als Argument akzeptiert, überprüft, ob Sie nicht mit einem Entwurf, einem ausstehenden Artikel oder einem automatischen Entwurf arbeiten, und dann den Inhalt im Beitragsnamen by entfernt

Dies kann ein nuanciertes Problem sein. Das heißt, vielleicht werden Sie ihm bei Ihren Entwicklungsbemühungen nicht begegnen. Wenn Sie dies jedoch tun, bietet dies eine Lösung, mit der Sie nicht nur bestimmte Zeichen aus der URL entfernen können, sondern dies auch in einer skalierbaren Weise tun können.

Wenn sich Ihre Anforderungen ändern, können Sie den preg_replace -Aufruf einfach mit den Zeichen aktualisieren, die Sie aus Ihrer URL entfernen müssen.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen