Qualcuno può fornirmi una funzione per generare slug?
Le funzioni che Wordpress usa per generare slug sono sparse in diverse funzioni e filtri. Non riesco a trovarli tutti. Qualcuno può fornirmi una singola funzione php per generare slug? Non ho bisogno di tutte le funzionalità di Wordpress, ho solo bisogno di codificare caratteri non latini e rimuovere caratteri illegali che non sono ammessi nell'URL.
Questo post fornisce una funzione, ma non può gestire caratteri non latini.
Grazie!
Risposte
Questo post fornisce una funzione, ma non può gestire caratteri non latini.
Questo perché gli URL non possono contenere caratteri non latini / ASCII.
I browser potrebbero mostrarti caratteri non latini, ma è solo una funzionalità dell'interfaccia utente.
Ad esempio, se visiti questo URL di Wikizionario:, l'URL del https://en.wiktionary.org/wiki/わかもの#Japanese
tuo browser codifica i caratteri giapponesi per ottenere l'URL reale: https://en.wiktionary.org/wiki/%E3%82%8F%E3%81%8B%E3%82%82%E3%81%AE#Japanese
quindi l'URL lo decodifica quando mostra l'URL. La versione con i segni di percentuale è l'URL reale.
Allo stesso modo con qualsiasi altro codice di caratteri non ASCII, ad esempio l'arabo. Se crei un post con lo slug わかもの
poi salvi e controlli il database, non vedrai わかもの
, vedrai %e3%82%8f%e3%81%8b%e3%82%82%e3%81%ae
. Allo stesso modo l'interfaccia utente ti mostrerà i caratteri giapponesi, ma se copi il collegamento, ottieni la versione codificata.
Se poi aggiorniamo il database e cambiamo lo slug del post in わかもの
, il post ora non può essere caricato e otteniamo un 404. Questo perché lo slug non è valido e non è possibile caricare un URL che corrisponda a quello slug.
sì, ho bisogno che i caratteri non latini siano codificati come% xx
È necessario urlencode
cheecho urlencode( $slug )