Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Como hacer un Shortcode de entradas recientes con atributos

Vamos a crear un Shortcode para mostrar entradas o páginas recientes donde podrás decidir con atributos en cada uno el número a mostrar, si añadir o no la imagen, el extracto, por categoría, en que orden… etc.

Lo primero como siempre es añadir un código en functions.php o en un plugin que hayas creado para shortcodes.

// Crear shortcodes de entradas recientes
function recent_posts_shortcode( $atts ) {
	/* Get the shortcode attributes
	----------------------------------- */
	$a = shortcode_atts( array(
		'posttype' => 'post', // Mostrar post type
		'cat' => '', // Limitar por categorías
		'exclude_ids' => '', // Exluir posts
		'columns' => '2', // Varias columnas
		'show' => '5', // Número de post para mostrar
		'image' => 'yes', // Mostrar imagen
		'excerpt' => 'yes', // Mostrar extracto
		'orderby' => '', // Ordenar por
		'order' => 'asc', // Ordenar ascendente o descendente
		'ignore_sticky' => 'yes', // Ignorar Sticky Posts
		'class' => '' // Añadir CSS para este shortcode
	), $atts );
	/* Build up the WP Query
	----------------------------------- */
	// Which post type to use?
	$args = 'post_type=' . $a['posttype'];
	// Display how many posts (use -1 to display all posts)
	$args .= '&posts_per_page=' . $a['show'];
	// should the posts be limited to a set category?
	$args .= ( $a['cat'] ? '&category_name=' . esc_attr( $a['cat'] ) : '' );
	//Exclude certain posts by their post IDs
	if( $a['exclude_ids'] ) {
		$exclude_ids = esc_attr( array( $a['exclude_ids'] ) );
		$args .= '&post__not_in=' . $exclude_ids;
	}
	// Order Posts by
	$args .= ( '' != $a['orderby'] ? '&orderby=' . esc_attr( $a['orderby'] ) : '' );
	$args .= ( '' != $a['orderby'] && 'asc' == $a['order'] ? '&order=ASC' : '' );
	// Ignore sticky posts
	$args .= '&ignore_sticky_posts=' . ( 'yes' == $a['ignore_sticky'] ? '1' : '0' );
	// Do the query with all the arguments that we built above
	$wpab_query = new WP_Query( $args );
	// If the column number is set, convert the columns to the CSS grid size
	$columns = esc_attr( $a['columns'] );
	switch ( $a['columns'] ) {
		case '3':
			$columns = '4';
			break;
		case '2':
			$columns = '6';
			break;
		case '1':
			$columns = '12';
			break;
	}
	/* Loop through post items
	----------------------------------- */
	$blog = '';
	if ( $wpab_query->have_posts() ) {
		$blog .= '
'; $blog .= ''; $blog .= get_the_post_thumbnail( get_the_ID(), $img_size, $atts ); $blog .= ''; $blog .= '
'; endif; /* The title --------------------------- */ $blog .= '

'; $blog .= ''; $blog .= get_the_title(); $blog .= ''; $blog .= '

'; $blog .= ''; /* The excerpt --------------------------- */ if ( 'yes' == $a['excerpt'] ) : $blog .= '

' . get_the_excerpt() . '

'; endif; $blog .= ''; endwhile; $blog .= '
'; } wp_reset_postdata(); /* Output shortcode ----------------------------------- */ return $blog; } add_shortcode( 'recent_posts', 'recent_posts_shortcode' );

Una vez añadido el Snippet con las funciones ya puedes colocar el shortcode donde quieras.

[recent-posts] Con el shortcode simple te aparecerán 5 entradas con imagen, extracto, de todas las categorías y ordenadas por fecha descendente.

Pero, esto lo puedes cambiar a tu gusto de la siguiente manera

[recent-posts show=”3″ image=”no” cat=”5″ excerpt=”no” orderby=”title” class=”recent-post”]

En este caso se mostrarán 3 entradas sin imagen, ni excerpt y ordenadas por título y además, le hemos puesto una clase recent post para cambiar su diseño.

Los cambios que puedes hacer son:

post: page/post/custompost
cat: ID de categorías a mostrar
exclude_ids: ID de las entradas que se excluyen
show: Número de post que se muestran
image: yes/no
excerpt: yes/no
orderby: ASC/DESC
order: none/ID/author/title/date/modified/rand/comment_count
ignore_sticky: 1/2/3
class: class_name

Espero que te haya servido de ayuda



This post first appeared on Taller De Wordpress, please read the originial post: here

Share the post

Como hacer un Shortcode de entradas recientes con atributos

×

Subscribe to Taller De Wordpress

Get updates delivered right to your inbox!

Thank you for your subscription

×