PHP - Formula condicional.

   
Vista:
Imágen de perfil de demianCBA

Formula condicional.

Publicado por demianCBA (2 intervenciones) el 24/11/2013 00:39:17
Buenas, soy muy nuevito en la programación de PHP y estoy teniendo problemas con una simple formula.

Yo quiero que apartir de una variable, se cargue un código html. Y si esa condición no se cumple que se cargue otro código.


Lo estoy haciendo sobre un theme de wordpress que compre, y necesito que si el nombre de la página (variable) es igual a "habitaciones" deje tres espacios <br> y si no, que no deje espacio.


les dejo el código que hice, no me da error de sintaxys pero no funciona :(


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$a= '(the_title();)';
$b= 'Habitaciones';
if ($a == $b); { ?>
<br>
<br>
<br>
<h2 class="title-anchor"><?php the_title(); ?></h2>
<?php } ?>
 
 
<?php
$a= '(the_title();)';
$b= 'Habitaciones';
if ($a != $b); { ?>
<h2 class="title-anchor"><?php the_title(); ?></h2>
<?php } ?>

Desde ya muchas gracias, estoy muy entusiasmado con aprender, soy muy novato :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Formula condicional.

Publicado por Mari Carmen (145 intervenciones) el 24/11/2013 01:41:31
Si the_title() es una función que devuelve un string lo asignas directamente a la variable. Si por el contrario the_title() es una función que realiza un "echo" deberás cambiarla para que además retorne el valor que enseña por pantalla.

Dando por hecho que el valor de retorno de the_title() es un string la comparación se haría asi:

1
2
3
4
5
6
7
8
9
<?php
$a=the_title(); //String
$b='Habitaciones'; //String
if($a==$b) { //Comparación de strings
   echo "<br><br><br>";
   echo '<h2 class="title-anchor">'.php the_title().'></h2>';
}else{
    echo '<h2 class="title-anchor">'.php the_title().'></h2>';
}

Si te fijas en el código anterior se puede simplificar al tener zonas que son idénticas. Por lo que podemos simplificarlo asi.

1
2
3
4
5
6
7
<?php
$a=the_title(); //String
$b='Habitaciones'; //String
if($a==$b) { //Comparación de strings
   echo "<br><br><br>"; //Esta zona se repetirá únicamente cuando sean iguales.
}
echo '<h2 class="title-anchor">'.php the_title().'></h2>';  //Esta siempre se ejecutará

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de demianCBA

Formula condicional.

Publicado por demianCBA (2 intervenciones) el 25/11/2013 00:42:06
Hola Mari Carmen desde ya muchas gracias por la velocidad en la respuesta!
Te cuento que coloque el código que me diste y dio error:

Parse error: syntax error, unexpected 'the_title' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\wordpress\wp-content\themes\anchor\homepage.php on line 32


mi línea 32 es esta:

echo '<h2 class="title-anchor">'.php the_title().'></h2>'; //Esta siempre se ejecutará

Trate de resolverlo quitando el h2 de la formula de php, es decir dejando que solo muestre los <br> en caso de que se cumpla la condición.

<?php
$a=the_title(); //String
$b='Habitaciones'; //String
if($a==$b) { //Comparación de strings
echo "<br><br><br>"; //Esta zona se repetirá únicamente cuando sean iguales.
}?>
<h2 class="title-anchor"><?php the_title(); ?></h2>


No da errores pero tampoco funciona, te mando la única función que encontre respecto al título, ya que quizás sea como vos decís, hay que cambiar algo en la función.

Desde ya muchas gracias de nuevo por tu tiempo y disposición

Función

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 * Filters wp_title to print a neat <title> tag based on what is being viewed.
 */
function progression_wp_title( $title, $sep ) {
	global $page, $paged;
 
	if ( is_feed() )
		return $title;
 
	// Add the blog name
	$title .= get_bloginfo( 'name' );
 
	// Add the blog description for the home/front page.
	$site_description = get_bloginfo( 'description', 'display' );
	if ( $site_description && ( is_home() || is_front_page() ) )
		$title .= " $sep $site_description";
 
	// Add a page number if necessary:
	if ( $paged >= 2 || $page >= 2 )
		$title .= " $sep " . sprintf( __( 'Page %s', 'progression' ), max( $paged, $page ) );
 
	return $title;
}
add_filter( 'wp_title', 'progression_wp_title', 10, 2 );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formula condicional.

Publicado por Mari Carmen (145 intervenciones) el 25/11/2013 07:26:46
Si de hecho me equivoque en los dos ejemplos, debería ser:
1
echo '<h2 class="title-anchor">'.the_title().'></h2>';

Aveces no revisar las cosas te pasa factura. Lo único que hice fue quitar el php ese que había por ahi... después del punto. Pruébalo y a ver si se soluciona.

Tu segunda forma sería válida si pusieses un echo antes de la función. Ya que la función retorna un string tenemos que imprimirlo en pantalla.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar