Vzk91
Zeta
Programador
Verificación en dos pasos activada
Hola,
Vereis yo tengo configurado para que las url de los post se muestren de la siguiente forma:
El problema esque esta url "amigable" es generada posteriormente, ya que si consulto la tabla WP_POST el campo que almacena la url que es el campo "guid" almacena una url del tipo:
Alguien sabe si es posible obtener apartir del guid del post la url amigable ??
OJO ! Estoy hablando de obtenerla en forma de variables, no directamente la url del navegador, ya que necesito estraer la URL por una consulta a la BD pero la que obtengo que las guid no me sirve...
un saludo
- - - Actualizado - - -
He estado investigando bastante y he logrado conseguir el objetivo que me proponia, pero la forma en la que lo he hecho es algo "sucia", y me gustaria saber si alguien podria ayudarme a depurar un poco el codigo. El codigo es el siguiente:
Finalmente el resultado es:
Antes: /?p=10
Ahora: /categoria/texto-de-prueba-prueba1-prueba2/
No se si me estoy complicando mucho la vida, pero llevo todo el dia buscando y no he encontrado otra forma de obtener la URL amigable de mis post en un string.
un saludo y si alguien puede ayudarme a optimizar este codigo se lo agradeceria
- - - Actualizado - - -
Definitivamente me estaba complicando mucho, os dejo una funcion que integra wordpress que hace la misma tarea:
Vereis yo tengo configurado para que las url de los post se muestren de la siguiente forma:
Insertar CODE, HTML o PHP:
http://www.misitio.com/la_categoria/la_entrada
El problema esque esta url "amigable" es generada posteriormente, ya que si consulto la tabla WP_POST el campo que almacena la url que es el campo "guid" almacena una url del tipo:
Insertar CODE, HTML o PHP:
http://www.misitio.com/?p=XX
Alguien sabe si es posible obtener apartir del guid del post la url amigable ??
OJO ! Estoy hablando de obtenerla en forma de variables, no directamente la url del navegador, ya que necesito estraer la URL por una consulta a la BD pero la que obtengo que las guid no me sirve...
un saludo
- - - Actualizado - - -
He estado investigando bastante y he logrado conseguir el objetivo que me proponia, pero la forma en la que lo he hecho es algo "sucia", y me gustaria saber si alguien podria ayudarme a depurar un poco el codigo. El codigo es el siguiente:
PHP:
//$id es el ID del post
//$nombre es el titulo del post
function obtener_url($id, $nombre)
{
foreach((get_the_category($id)) as $category){
$nombre2 = trim(preg_replace('(^A-Za-z0-9)', ' ', $nombre));
$chars = array("[", "]", "(", ")");
$chars_dobles = array("[(", ")]", "([", "])", ")[", "](", "(]", "[)", "[[", "]]", "((", "))", " [", " (");
$chars_esp = array("ñ", "Ñ");
//Sustituimos los caracteres dobles por un separador -
$nombre3 = str_replace($chars_dobles, '-', $nombre2);
//Eliminamos los caracteres que no nos interesan
$nombre4 = str_replace($chars, '', $nombre3);
//Remplazamos las ñ por n
$nombre5 = str_replace($chars_esp, 'n', $nombre4);
//Remplazamos los espacios por separadores - y convertirmos todo a minusculas
$nombre6 = strtolower(str_replace(' ','-',$nombre5));
//Generamos una ruta relativa del tipo /categoria/tuitulo
$ruta= "/".strtolower($category->cat_name)."/$nombre6/";
//Devolvemos la ruta
return $ruta;
}
//Llamamos la funcion pansandole los parametros
echo obtener_url(10, "Texto de Prueba [Prueba1](Prueba2)");
Finalmente el resultado es:
Antes: /?p=10
Ahora: /categoria/texto-de-prueba-prueba1-prueba2/
No se si me estoy complicando mucho la vida, pero llevo todo el dia buscando y no he encontrado otra forma de obtener la URL amigable de mis post en un string.
un saludo y si alguien puede ayudarme a optimizar este codigo se lo agradeceria
- - - Actualizado - - -
Definitivamente me estaba complicando mucho, os dejo una funcion que integra wordpress que hace la misma tarea:
PHP:
get_permalink($id_post)