Añadiendo un estilo y función para Post en categoría Notas

  • Autor Autor sebasxnco
  • Fecha de inicio Fecha de inicio
S

sebasxnco

Épsilon
Hola estoy creando un nuevo tema para mi web y le quiero agregar una opción que tiene muchos sitios y es de que

Los post alojados en una categoría tal digamos "Notas" aparezcan en un recuadro como este

Enlace eliminado

Que tiene la funcion <?php the_excerpt(); ?> que muestra poco contenido - texto


Mientras que los post que no estén en la categoría "Notas" aparecen totalmente normales

Enlace eliminado

Que la función es <?php the_content('Leer El Resto De La Entrada &raquo;'); ?> que es la que tienen casi todos los sitios en Wordpress

Obviamente en los ejemplos que mostré anteriormente la casilla pequeña tiene un estilo diferente que la otra

Ósea que a la final es como hacer para que un post que yo le diga que se aloje en la categoría “Notas” por ejemplo. Se muestre así pequeño y además con el estilo que yo le tengo en el Css.

un ejemplo FayerWayer - Dosis diarias de tecnología en español. o madboxpc.com

bueno y ademas agrego que me encontre un codigo que hace o reconoce cuando un post tiene extracto solo muestra eso y si no tiene muestra el post completo o pues el normal

PHP:
<?php

global $post;

if($post->post_excerpt){

the_excerpt();

}else{

the_content();

}

?>


pero tiene el problema de que no veo como agregarle el estilo del post pequeño asi como la imagen alguna idea

gracias
 
Que onda.

Hay varias formas de hacer lo que pides, al menos yo conozco dos. Una es con post_types (wordpress 3.0) y otra es con wp_reset_query. La segunda es la más fácil de implementar, pero la primera es más fácil de usar 😛 Yo uso la segunda (wp_reset_query).

Primero tienes que definir las queries para traer tus posts, esto lo haces con la función query_posts, a esa función le vas a pasar los parámetros de los posts que quieres traer, en tu caso, el id de las categorías. A grandes rasgos, lo que vas a hacer es esto:

<?php query_posts('cat=1') // aqui pondrías el id de la categoría ?>
<?php /* Despliegas los posts de la primera categoría */ ?>
if (have_posts()) : while (have_posts()) : the_post();
?><a href="<?php the_permalink() ?>"><?php the_title() ?></a><br /><?php
endwhile; endif;
<?php reset_query(); // aqui se reinicia el loop de wordpress para que lo podamos usar otra vez ?>

<?php query_posts('cat=2') // aqui pondrías el id de la SEGUNDA categoría ?>
<?php /* Despliegas los posts de la SEGUNDA categoría */ ?>
if (have_posts()) : while (have_posts()) : the_post();
?><a href="<?php the_permalink() ?>"><?php the_title() ?></a><br /><?php
endwhile; endif;
<?php reset_query(); // reinicias el loop de wordpress para que lo puedas usar otra vez ?>

Eso es a grandes rasgos, tú escribe los divs y elementos necesarios para desplegar el diseño que necesitas (y obviamente también usa the_content() para el contenido de tus posts 😛)

Saludos!
 
yo dejaría un solo bucle para hacer eso, osea el que viene por defecto en cualquier theme de wordpress, dentro de el mismo utilizaría un if con in_category, introduciendo el id o un array con los ids de las categorias, dentro de ese if, pondría el nuevo html para ese tipo de post y listo, otra opción sería añadir desde el functions.php un select al wp-admin de insertar post con dos enlaces, tipo de post.

Insertar CODE, HTML o PHP:
add_action('admin_init', 'listado_plantillapost_add_custom_box', 1);
function listado_plantillapost_add_custom_box() {
    add_meta_box( 
        'id_plantillapost',
        'Elija plantilla post',
        'wp_box_listado_plantillapost',
        'post'
    );
}

function wp_box_listado_plantillapost () {
  wp_nonce_field(plugin_basename(__FILE__), 'plantillapost_noncename');
  if($_GET['action']=='edit'){
	$plantillapost=get_post_meta(intval($_GET['post']),'plantillapost',true);
	if($plantillapost==1){$select1=' selected="selected"';}
	if($plantillapost==2){$select2=' selected="selected"';}
	echo'<select name="plantillapost"><option'.$select1.' value="1">Normal</option><option'.$select2.' value="2">Mini</option></select><p><small>Si eliges mini deberás poner una imagen destacada.</small></p>';  
  }else{
	echo'<select name="plantillapost"><option value="1">Normal</option><option value="2">Mini</option></select><p><small>Si eliges mini deberás poner una imagen destacada.</small></p>';  
  }
}

add_action('save_post', 'listado_plantillapost_save_postdata');

function listado_plantillapost_save_postdata ($post_id){
  
  $plantillapost=get_post_meta($post_id,'plantillapost',true);

  if ( !wp_verify_nonce( $_POST['plantillapost_noncename'], plugin_basename(__FILE__) ) )
      return $post_id;

  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) 
      return $post_id;

	
  if ( !current_user_can( 'edit_post', $post_id ) ){
        return $post_id;
  }
  
  if ($plantillapost='') {
  add_post_meta($post_id, 'plantillapost', intval($_POST['plantillapost']));
  }else{
  update_post_meta($post_id, 'plantillapost', intval($_POST['plantillapost']));
  }
  

}

luego en el index.php de el theme pondría un if

Insertar CODE, HTML o PHP:
$plantillapost=get_post_meta(get_the_ID(),'plantillapost',true);  ?>
<?php if($plantillapost==2){ ?>
post pequeños
<?php }else{ ?>
post normales
<?php } ?>

para recortar texto lo expliqué aquí: http://forobeta.com/wordpress/54200-modificacion-o-plugin-limitar-palabras-inicio.html#post544012
 
yo lo hago exactamente de la manera que en el theme twenty ten, revisa el código y fíjate exactamente en el archivo loop.php, fíjate como separan los tipos de posts.
 
Hola xnco77 .. disculpa la indiscreción, y si se puede saber... Con qué finalidad haces eso ??
 
Podrían explicar de una mejor manera esto? me gustaría incluirlo en mi blog, pero no tengo tantos conocimientos de php, a ver si alguien se anima para hacer una explicación mas explicita.. gracias
 
Yo pienso implementar eso en mi blog usando el theme twenty eleven. No lo he podido revisar del todo pero he visto que en los Post Types hay varias opciones, supongo que alguna de ellas será con el Leer más y otras sin eso.

andyvc
Por el lado del lector, este puede ver completamente los posts cortitos, o miniposts con un formato diferente a los otros y más bonito. Mientras tanto los posts largos siguen mostrandose con el Leer más. Así el usuario no tiene que bajar tanto en caso de posts muy largos en el momento de revisar la pagina principal.
Por el lado del administrador, implementar la función de colocar Post Types hace que no tengas que preocuparte por darle formato a los miniposts, solo marcas una casilla y WP se encarga de aplicárselo.

Acá les dejo más información al respecto: Post Types | Ayuda WordPress, aunque creo que deberíamos explorar primero las opciones de WP 3.2.
 

Temas similares

Atrás
Arriba