✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur man tar bort specialtecken från permalänkar

6

När du arbetar med WordPress och tredjeparts-API:er finns det alltid en chans att du kommer att stöta på problem där tredjeparts-API:n inte är beredd att hantera vissa tecken som finns i en permalänk.

Beroende på ens permalänkinställningar kan detta dock vara ett problem eller inte. Till exempel kan du ha dina permalänkar inställda på något som ?p=123 för varje inlägg. I så fall är det inte så mycket problem.

Men om du använder "ganska permalänkar" och din permalänk innehåller något som en varumärkessymbol eller en copyright-symbol, kan det orsaka problem när du kommunicerar med nämnda tredje parts API.

För det första, om du använder vackra permalänkar, skapas dessa vanligtvis från inläggets titel. Så om du använder något som All About The Acme Machine™ genererar en permalänk som innehåller något liknande.

Till exempel kan du låta WordPress automatiskt generera något så här: https://acme.com/all-about-the-acme®-machine/

Och när det är dags att skicka den informationen till ett tredjeparts-API (eller att försöka bearbeta den med något som inte är förberett för sådana tecken) då kommer du att stöta på problem.

Lyckligtvis tillhandahåller WordPress en krok som gör att vi kan bearbeta permalänkar innan de serialiseras till databasen. Det här är nämligen wp_insert_post_data- kroken.

Och i det här fallet fungerar det så här:

  1. Ställ in kroken för att avfyras sent i serialiseringsprocessen,
  2. Leta efter karaktärer som kan vara problematiska,
  3. Ersätt dem med en tom sträng,
  4. Returnera den uppdaterade informationen till WordPress för serialisering.

Här är ett exempel som försöker ta bort olika symboler som copyright-symboler, varumärkessymboler, registreringssymboler och andra varianter av dessa både i kodade format och i de kodade motsvarigheterna:

Observera att funktionen accepterar inläggsdata som ett argument, kontrollerar att du inte arbetar med ett utkast, en väntande artikel eller ett autoutkast och tar sedan bort innehållet i inläggets namn genom att

Detta kan vara en nyanserad fråga. Det vill säga, du kanske inte kommer att stöta på det i dina utvecklingsarbete. Om du å andra sidan gör det, så ger detta en lösning som inte bara låter dig ta bort vissa tecken från URL:en, utan också låter dig göra det i en skalbar.

Så när dina behov förändras kan du helt enkelt uppdatera preg_replace -anropet med de tecken du behöver för att ta bort från din URL.

Inspelningskälla: tommcfarlin.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer