Foros del Web » Programando para Internet » PHP »

PHP OO No consigo hacer esta sentencia lógica dentro de wordpress

Estas en el tema de No consigo hacer esta sentencia lógica dentro de wordpress en el foro de PHP en Foros del Web. Hola a todos, Tengo un archivo php que va colocado arriba a la derecha dentro del blog. En ese php va la publicidad. Quiero que ...
  #1 (permalink)  
Antiguo 08/04/2015, 06:38
 
Fecha de Ingreso: abril-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
No consigo hacer esta sentencia lógica dentro de wordpress

Hola a todos,


Tengo un archivo php que va colocado arriba a la derecha dentro del blog.

En ese php va la publicidad.

Quiero que según la categoría de la noticia que se muestre me muestre una publicidad diferente.

Para eso se que the_category(', ') me trae la lista de las categorías.

Entonces lo que quiero y no lo consigo es:
Que si dentro de la categoría hay "Pocino" entonces muestras esto...
Que si dentro de la categoría hay "Apicultura" entonces muestras esto...

Supongo que con un swich y dentro todos los case que sean necesarios será posible pero por mas que doy vueltas y vueltas no doy con el código adecuado.



¿alguno me puede ayudar?

Muchas gracias,
  #2 (permalink)  
Antiguo 08/04/2015, 07:16
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Tienes que publicar el código que tienes echo, créeme nadie va a estar adivinando
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 08/04/2015, 08:05
 
Fecha de Ingreso: abril-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Hola hhs,


Pues no lo he puesto porque me parece que lia mas que aclara pero lo pongo:

Código:
 <?php

		$resultado = strpos(the_category(', '), "Apicultura");
		if($resultado == TRUE){
			echo "dentro de Apicultura";
		}
		
		$resultado = strpos(the_category(', '), "Asociaciones");
		if($resultado == TRUE){
			echo "dentro de Asociaciones";
		}
	?>
Primero: la usar the_category(', ') me las muestra pero no se si las usa como variable.
Segundo: la estructura de if puede estar bien pero me parece un poco chapuza.
Tercero: como podéis ver no controlo casi nada de php.
  #4 (permalink)  
Antiguo 08/04/2015, 09:00
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Código PHP:
Ver original
  1. if(strpos(the_category(), "Apicultura")
  2. {
  3.      echo "dentro de Apicultura";
  4. }
  5. elseif(strpos(the_category(), "Asociaciones")
  6. {
  7.      echo "dentro de Asociaciones";
  8. }
  9. else
  10. {
  11.      echo "otra categoría";
  12. }
  #5 (permalink)  
Antiguo 08/04/2015, 13:51
 
Fecha de Ingreso: abril-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Cita:
Iniciado por superweb360 Ver Mensaje
Código PHP:
Ver original
  1. if(strpos(the_category(), "Apicultura")
  2. {
  3.      echo "dentro de Apicultura";
  4. }
  5. elseif(strpos(the_category(), "Asociaciones")
  6. {
  7.      echo "dentro de Asociaciones";
  8. }
  9. else
  10. {
  11.      echo "otra categoría";
  12. }

Tal y como lo has escrito superweb360 no funciona.

Creo que es: if(strpos(the_category()) == "Apicultura")

En cualquier caso tampoco funciona.

Lo que creo que esta mal es como creo la variable que contiene the_category()

Muchisimas gracias de todas formas,
  #6 (permalink)  
Antiguo 08/04/2015, 14:33
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

sin querer me dejé unos paréntesis. Prueba esto otro, a ver:

Código PHP:
Ver original
  1. if(strpos(the_category(), "Apicultura"))
  2.     {
  3.          echo "dentro de Apicultura";
  4.     }
  5.     elseif(strpos(the_category(), "Asociaciones"))
  6.     {
  7.          echo "dentro de Asociaciones";
  8.     }
  9.     else
  10.     {
  11.          echo "otra categoría";
  12.     }
  #7 (permalink)  
Antiguo 08/04/2015, 15:02
 
Fecha de Ingreso: abril-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Mira superweb360: primero date las gracias, desde luego.


Mira el código. Ahora he conseguido que me lea todas las categorias.

Lo que no me funciona es el switch.

¿sabes porque?

Prefiero usar switch a if porque me parece mas logico, mas estructurado.
Cita:
<?php
$category = the_category ();


//saco el numero de elementos
$longitud = count($category);


//Recorro todos los elementos
for($i=0; $i<$longitud; $i++)
{

echo $category[$i];

switch($category[$i]){
case 'Apicultura' :
echo "dentro de Apicultura";
break;
case 'Asociaciones' :
echo "dentro de Asociaciones";
break;
default : break;
}
}


?>
  #8 (permalink)  
Antiguo 08/04/2015, 15:11
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

¿estás seguro que the_category() devuelve un array?
  #9 (permalink)  
Antiguo 08/04/2015, 16:49
 
Fecha de Ingreso: abril-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Si, el resultado es este:



Mi código esta arriba a la derecha, donde pone publicidad y las etiquetas de la entrada abajo.
  #10 (permalink)  
Antiguo 08/04/2015, 17:01
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Me parece que $category[$i] te devuelve un link en una lista, por eso no te lo pilla en el switch. ¿Y si pruebas algo así?

Código PHP:
Ver original
  1. <?php
  2. $category = the_category ();
  3.  
  4. //saco el numero de elementos
  5. $longitud = count($category);
  6.  
  7. //Recorro todos los elementos
  8. for($i=0; $i<$longitud; $i++)
  9. {
  10.     if(strpos($category[$i], "Apicultura"))
  11.     {
  12.          echo "dentro de Apicultura";
  13.     }
  14.     elseif(strpos($category[$i], "Asociaciones"))
  15.     {
  16.          echo "dentro de Asociaciones";
  17.     }
  18.     else
  19.     {
  20.          echo "otra categoría";
  21.     }
  22. }
  23. ?>
  #11 (permalink)  
Antiguo 08/04/2015, 17:16
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

Creo que lo mejor seria que hiciera depuración con var_dump o print_r con el resultado de la función para determinar que regresa y actuar en consecuencia.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #12 (permalink)  
Antiguo 10/04/2015, 04:20
 
Fecha de Ingreso: abril-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: No consigo hacer esta sentencia lógica dentro de wordpress

No, lo estoy haciendo mal.

Lo que me muestra en pantalla es
Cita:
$category = the_category ();
Pero si pongo var_dump ($category); me da como resultado NULL 0.

O sea creo que no me coge las categorías como variable. Y si este paso esta mal el resto también.


Uff, ya no se que hacer, que cosa mas complicada.

Etiquetas: sentencia, wordpress
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 22:52.