Entfernen Sie internationale Zeichen von Slug – Fast fertig – Bit-Hilfe

Ich möchte einige Zeichen aus dem Slug entfernen, wie “¿”, die wir in Spanisch zum Öffnen einer Frage verwenden.

Wenn ich zu wp-includes / formatierung.php gehe und in

function sanitize_title_with_dashes($title) 

Zeile 820 wp32 Ich füge das hinzu

 $title = str_replace('¿', '', $title); 

kurz vor $ title = preg_replace (‘|% ([a-fA-F0-9] [a-fA-F0-9]) |’, ‘— $ 1 —‘, $ title);

Und es funktioniert richtig. Wenn ich also den Titel “¿Qué tal?” die Schnecke ist “que-tal”

Nun, wie mache ich das mit einer function, damit ich sie über functions.php oder über ein Plugin benutzen kann ??

Ich mache das, aber es funktioniert nicht

 function limpiar_slug($slug) { $slug = str_replace('¿', '', $slug); return $slug; } add_filter('sanitize_title_with_dashes', 'limpiar_slug'); 

Irgendein Vorschlag???

Danke im Voraus

Solutions Collecting From Web of "Entfernen Sie internationale Zeichen von Slug – Fast fertig – Bit-Hilfe"

Im Anschluss an meinen Kommentar zu Ihrer Frage.

Die Lösung wäre, Ihren eigenen Filter auf die gleichen functionen zu sanitize_title_with_dashes wie es bei sanitize_title_with_dashes Fall ist. In diesem Fall denke ich, dass Sie nur darauf abzielen, sich auf sanitize_title wie es bei sanitize_title_with_dashes geschieht.

Stellen Sie einfach sicher, dass Sie sich nach sanitize_title_with_dashes , das mit der Standardpriorität von 10 aktiviert ist.

Z.B.

 add_filter('sanitize_title', 'limpiar_slug', 11 ); 

Keine Notwendigkeit, Core-Dateien zu hacken.

BEARBEITEN SIE UNTEN:

Sie könnten ein paar Regex ausprobieren, hier ist ein Beispiel, mit dem Sie spielen können, ein Code, der aus dem Code von Adriana Villafañe als Antwort auf Regular expression – einen beliebigen Text zu URL-freundlich auf StackOverflow – angepasst wurde.

 add_filter( 'sanitize_title', 'sanitize_title_extra' ); function sanitize_title_extra( $title ) { $friendlyURL = htmlentities($title, ENT_COMPAT, "UTF-8", false); $friendlyURL = preg_replace('/&([az]{1,2})(?:acute|lig|grave|ring|tilde|uml|cedil|caron);/i','\1',$friendlyURL); $friendlyURL = html_entity_decode($friendlyURL,ENT_COMPAT, "UTF-8"); $friendlyURL = preg_replace('/[^a-z0-9-]+/i', '-', $friendlyURL); $friendlyURL = preg_replace('/-+/', '-', $friendlyURL); $friendlyURL = trim($friendlyURL, '-'); $friendlyURL = strtolower($friendlyURL); return $friendlyURL; } 

Scheint, den Trick zu machen, einige unerwünschte Charaktere aufzuklären, frei zu zwicken, usw. …

Das Problem ist, dass die function sanitize_title_with_dashes keine Filter verwendet (was seltsam ist, denke ich), so dass du es nicht ändern kannst, ohne die Datei format.php direkt zu hacken 🙁