Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] Asignar clase al primer post desde PHP

Estas en el tema de Asignar clase al primer post desde PHP en el foro de WordPress en Foros del Web. Primero que todo agradecer por adelantado la orientación que me puedan dar al respecto. Les cuento. tengo una sección del sitio en WP que muestra ...
  #1 (permalink)  
Antiguo 01/05/2013, 15:59
 
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Asignar clase al primer post desde PHP

Primero que todo agradecer por adelantado la orientación que me puedan dar al respecto.

Les cuento. tengo una sección del sitio en WP que muestra 3 post, desde PHP esos post tienen una clase predeterminada (newsItem), lo que necesito es que cada uno de ellos tenga diferente clase para modificar luego su apariencia desde PHP.

les adjunto la porción de código que controla esa sección.

Mil gracias nuevamente.

-jd


Código:
<h1>Expert Views &amp; Commentary</h1>

			<?php $sdac_query = new WP_Query("cat=464&showposts=12"); $i = 0; if ($sdac_query->have_posts()) : while ($sdac_query->have_posts()) : 
			$sdac_query->the_post();$i++; if( $post->ID == $postID1 ||  $post->ID == $postID2 || $post->ID == $postID3 ||  $post->ID == $postID4 || 
			$post->ID == $postID5 || $post->ID == $postID6 || $post->ID == $postID7 || $post->ID == $postID8 || $post->ID == $postID9 || $post->ID == $postID10) 
			continue; update_post_caches($posts);?>
			<?php if ($i == '1' || $i == '2' || $i == '3' ) :?>
				<div class="newsItem">
					<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
					<?php //if (function_exists('tweetmeme')) echo tweetmeme();?>
					<?php //if (function_exists('tm_generate_button')) { echo tm_generate_button(); } ?>
<?php //echo '<iframe src="http://getmailcounter.com/mailcounter/?url=';urlencode(the_permalink());echo '&title=';urlencode(the_title()); echo '" height="64" width="50" align="right" frameborder="0" scrolling="no" ></iframe>'; ?> 						

<script src="//platform.linkedin.com/in.js" type="text/javascript"></script>
<script type="IN/Share" data-url="<?php the_permalink() ?>" data-counter="top"></script>

			<?php if (function_exists('fbshare_manual')) echo fbshare_manual(); ?>
<div style="float:right; margin-left:10px;">
<a href="https://twitter.com/share" class="twitter-share-button" data-text="<? the_title() ?>" data-url="<?php the_permalink() ?>" data-via="NSAmericas" data-lang="en" data-related="anywhereTheJavascriptAPI" data-count="vertical">Tweet</a>							
</div>

					<?php the_content('Read More &raquo;');?>
				</div>
				<?php else: ?>
				<?php endif;endwhile;?>	
				
					<h4 class="blueBG"><a href="<?php bloginfo('url');?>/category/expert-views-commentary/">Read More Expert Views &amp; Commentary &raquo;</a></h4>
				</div>
			<?php endif;?>
  #2 (permalink)  
Antiguo 02/05/2013, 03:09
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Asignar clase al primer post desde PHP

Dentro del Loop puedes usar $sdac_query->current_post que devuelve un número en orden correlativo (0, 1, 2, 3, 4, etc.).

Puedes usarlo con una clase, por ejemplo class="mi-class-<?php echo $sdac_query->current_post; ?>", esto conseguirá que tenga distintas clases (mi-clase-0, mi-clase-1, mi-clase-2, etc.).
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios
  #3 (permalink)  
Antiguo 02/05/2013, 08:39
 
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Respuesta: Asignar clase al primer post desde PHP

Hola Hasdpk,

muchas gracias por tu respuesta... realmente no soy tan ducho en temas de PHP, me pongo más bien en la categoría principiante/novato/rookie.

Me podrías ayudar a modificar este código con tu sugerencia por favor, de paso aprender un poco más, solamente para el primer post, viendo eso podré entender que hacer para los demás...

Muchas gracias!!

-jd

Última edición por juanpulag; 02/05/2013 a las 09:17 Razón: agregar aclaración
  #4 (permalink)  
Antiguo 02/05/2013, 13:04
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Asignar clase al primer post desde PHP

Aquí arriba hay un hilo titulado Tips y Trucos para WordPress... Mira este http://www.forosdelweb.com/f118/tips...6/#post3727093

Saludos.
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #5 (permalink)  
Antiguo 02/05/2013, 13:08
 
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 11 años, 10 meses
Puntos: 0
Sonrisa Respuesta: Asignar clase al primer post desde PHP

Cita:
Iniciado por rogertm Ver Mensaje
Aquí arriba hay un hilo titulado Tips y Trucos para WordPress... Mira este [url]http://www.forosdelweb.com/f118/tips-trucos-para-wordpress-568406/#post3727093[/url]

Saludos.
Hola Rogertm,

Definitivamente voy a guardar ese link para futura consulta, el problema ahora es que este sitio fue hecho en una versión vieja y un theme totalmente personalizado, entonces muchas de esas cosas no aplican.

Muchas gracias por tu respuesta.

-jd
  #6 (permalink)  
Antiguo 02/05/2013, 16:02
 
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Respuesta: Asignar clase al primer post desde PHP

Estuve intentando modificar la línea donde está la clace de esta manera:

Código:
<div <?php echo ($i=='1') ? 'class="First_post"' : 'class="newsItem"'; ?>>
Pero no me funciona, que estoy haciendo mal?

Gracias..

-jd
  #7 (permalink)  
Antiguo 03/05/2013, 04:34
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Asignar clase al primer post desde PHP

Te explico un poco por encima lo que tienes que hacer.

TODOS, absolutamente TODOS los Loops tienen una propiedad que se llama $current_post, que es un número correlativo que se va autoincrementando a medida que va mostrando los post.

Por ejemplo para el primer post que se muestre $current_post devolverá 0, el segundo 1, el tercer 2, el cuarto 3, así sucesivamente. Recordarte que en programación el primer número es 0, no 1.

Tu tienes un Loop llamado $sdac_query, por lo tanto, dentro de él está $current_post. Para acceder a él deberás de llamarlo de la siguiente manera: $sdac_query->current_post.

En tu Loop, simplemente deberás de llamarlo como dice en el párrafo anterior en donde quieras que se muestre, y ya está.

Código PHP:
Ver original
  1. <div class="newsItem my_class_<?php echo $sdac_query->current_post; ?>">
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios
  #8 (permalink)  
Antiguo 03/05/2013, 09:56
 
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 11 años, 10 meses
Puntos: 0
Mensaje Respuesta: Asignar clase al primer post desde PHP

Hola lo solucioné por fin, lo que hice fue lo siguiente:

La linea donde aparece la clase

Código:
<div class="newsItem">
la reemplacé con:

Código:
<?php echo ($i=='1') ? 'class="First_post"' : 'class="newsItem"'; ?>
De esta manera le asigné una clase al primer post y otra clase a los demás.

muchachos, muchas gracias por toda su orientación fue de mucha utilidad.

-jd

Etiquetas: clases, estilos, php, post
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 21:52.