Foros del Web » Programando para Internet » PHP »

Hay forma de hacerlo?

Estas en el tema de Hay forma de hacerlo? en el foro de PHP en Foros del Web. Bueno, como muchos sabran, wordpress tiene una serie de funciones creadas entre las que se encuentra <? the_title(); ?> que te devuelve el titulo, la ...
  #1 (permalink)  
Antiguo 08/01/2009, 13:29
 
Fecha de Ingreso: junio-2008
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 1
Hay forma de hacerlo?

Bueno, como muchos sabran, wordpress tiene una serie de funciones creadas entre las que se encuentra <? the_title(); ?> que te devuelve el titulo, la pregunta es si a partir de ese titulo se puede crear un array, me explico...

El titulo de una entrada es 'Entrada numero 1', que seria lo que devolveria <? the_title(); ?> pero las url amigables de wordpress te colocan ese titulo de esta manera: 'entrada-numero-1'

Me gustaria saber como puedo meter ese resultado en un array para despues modificar y que cuando haya espacios ponga '-' y demás.

No se si se ha entendido bien, ojala puedan ayudarme, muchas gracias de antemano
  #2 (permalink)  
Antiguo 08/01/2009, 14:18
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Hay forma de hacerlo?

Saludos..

Para colocar ese titulo en un array podrias utilizar la funcion explode de php y para reemplazar los espacios por - puedes utilizar la funcion str_replace

Código PHP:
$titulo="Entrada numero 1";
$arreglo=explode(" ",$titulo);
$posicion=$arreglo[0];
echo 
$posicion// Entrada
$reemplazar=str_replace=(" ","-",$titulo);
echo 
$reemplazar//Entrada-numero-1 
Espero sea esto lo que buscabas.

Hasta Pronto!.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 08/01/2009, 14:58
 
Fecha de Ingreso: junio-2008
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Hay forma de hacerlo?

Gracias Nano_, se va encaminando, muchas gracias de verdad, el unico problema ahora es que no se puede (o no me deja) poner que $titulo se igual a la funcion the_title(), el texto que tengo ahora es:

Código:
             <?
// EXTRAER EL NOMBRE
$titulo= the_permalink();;
$arreglo= explode('/', $titulo);

// RESULTADO
echo "<b>URL: </b>".$titulo."<br><br>";
echo "<b>Parte 1: </b>".$arreglo[0]."<br>";
echo "<b>Parte 2: </b>".$arreglo[1]."<br>";
echo "<b>Parte 3: </b>".$arreglo[2];
?>
En Url y las 3 partes no me pone nada. ¿Alguna sugerencia?, muchas gracias en serio.
  #4 (permalink)  
Antiguo 08/01/2009, 15:22
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Hay forma de hacerlo?

ya verificaste que titulo tiene algun contenido??
__________________
My path is lit by my own fire, I only go where I desire
  #5 (permalink)  
Antiguo 08/01/2009, 17:30
 
Fecha de Ingreso: junio-2008
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Hay forma de hacerlo?

Buah, muchas gracias a ambos, al final lo he conseguido. ForeverOdd tenias razon, no me acordaba, hay una funcion muy parecida, get_the_title(); que te deja hacer lo que yo queria, al final el codigo es este, que seguro habra alguien que le haga falta y de paso la explico un poco.

Código:
<?
// EJEMPLO DE LA FUNCION EXPLODE
$titulo = get_the_title(); // Asignamos el titulo (funcion de wordpress)
$separar = explode(' ', $titulo); //Con esto hacemos que cada vez que haya espacio nos lo separe.

// RESULTADO
foreach ($separar as $elem) { //recorremos el array $separar
	$extracto1 .= $elem. "-";  
//Con esto de arriba vamos añadiendo cada palabra y separandolas con un gion (-) como las direcciones de wordpress
} 

echo $extracto1; // Esto simplemente es para comprobar que es correcto

?>
Al final queda algo asi:

Titulo: Este es el titulo
$extracto1 : Este-es-el-titulo-

Estaria bien quitarle el ultimo guion, por limpieza, pero ya es algo que se me escapa a lo poco que se xD, aun asi sirve ya que redirecciona a la misma URL pero sin el ultimo guion.

Muchas gracias Nano_ y ForeverOdd
  #6 (permalink)  
Antiguo 08/01/2009, 17:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Hay forma de hacerlo?

Antes del foreach debieras declarar $extracto1 como cadena vacia para evitar errores:

$extracto1 = '';

Si no vas a realizar algun proceso especifico con $separar aparte de crear la cadena con guiones en vez de espacios, usa la funcion str_replace como te dijo Nano_

Código PHP:
$titulo str_replace(' ''-'get_the_title()); 
Todo en una sola linea, a menos que necesites la matriz $separar para realizar otros procesos.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 08/01/2009, 18:00
 
Fecha de Ingreso: junio-2008
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Hay forma de hacerlo?

mejor aun, en este caso, para esta pagina no necesitare la variable $separar, asi que menos lineas y mas bonito incluso, thanks
  #8 (permalink)  
Antiguo 08/01/2009, 18:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Hay forma de hacerlo?

De nada, me alegra que te haya servido.

Por cierto, cualquier pregunta adicional es mejor hacerla en el mismo tema y no por mensaje privado, recuerda que a otros usuarios puede servirles la informacion que se va sacando de cada respuesta.

Si deseas que aparezca otro caracter en vez de los espacios o nada:
Código PHP:
$cambiar ='Este es un titulo para cambiar';

// Espacios cambiados por asteriscos
echo str_replace(' ''*'$cambiar);
// Resultado: Este*es*un*titulo*para*cambiar

// Espacios cambiados por cadena vacia
echo str_replace(' '''$cambiar);
// Resultado: Esteesuntituloparacambiar 
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 08/01/2009, 18:26
 
Fecha de Ingreso: junio-2008
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Hay forma de hacerlo?

ok, gracias crack
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:25.