Shortcode artigos recentes de uma categoria WordPress

shortcodes wordpress

Grande quantidade de usuários quando criam o seu site, sabe muito pouco sobre os tipos de personalização a fazer para ter um site bem funcional. Na maior parte das vezes recorresse ao mais fácil usando plugins que permite especificar o que queremos, mas depois pode acontecer o pior! O uso excessivo de plugins começa a causar conflitos com as configurações de layout…

Então, eu normalmente tento limitar o uso de plugins, crio shortcodes que na maior parte das vezes resolve o meu problema. Hoje vamos ver um desses códigos que me permitir mostrar posts recentes de apenas uma categoria…

A criação do Shortcode

/**
 * Shortcode to output recent posts from one category
 */
function display_recent_posts() {
  $args = array(
    'post_type' => 'post',
    'posts_per_page'=> 5,
    'cat'=> 4,
  );

  ob_start();
  
  $recent_posts = new WP_Query( $args );
  
  if( $recent_posts->have_posts() ): ?>
  
    <ul>
  
  <?php while ( $recent_posts->have_posts() ) : $recent_posts->the_post(); ?>
  
      <li><a href="<?php echo get_permalink(); ?>" title="<?php echo get_the_title(); ?>"><?php echo  get_the_title(); ?></a></li>
  
  <?php endwhile;  ?>
  
  </ul>
  
  <?php endif;
  
  $output = ob_get_clean();
  
  return $output;
  wp_reset_postdata();
}
add_shortcode( 'recent-posts', 'display_recent_posts' );

Como uasar o shortcode

O nome do shortcode é “recent-posts” voce vai então usar: [recent-posts]

Você pode adicionar o shortcode em uma página ou na barra lateral (widgets). Mas não esquecer que se você adicionar o shortcode em uma caixa de texto da barra lateral, você vai precisar para ativar um outro recurso, veja o código abaixo.

<?php
/**
 * enable shortcode in text widget
 */
add_filter('widget_text', 'do_shortcode');
?>

Eu parto do principio que você já tem algumas luzes do WordPress e não referi que deve colocar estes dois blocos de código no seu arquivo de funções do seu tema.

Bom e é isso espero poder ajuda-lo com mais este pequeno artigo, um abraço…

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *