20+ hacks de loop WordPress mais procurados

Publicados: 2017-12-20

O loop é o processo principal no WordPress, por isso é encontrado em quase todos os arquivos de tema. Essencialmente, é um código PHP usado pela plataforma para exibir postagens por meio de arquivos de modelo de um tema. Em outras palavras, é enorme. Na verdade, é fundamental, porque o site não funcionará sem um loop.

Ajustar esse conjunto de recursos incrivelmente poderosos pode aprimorar os recursos do seu site WordPress. Por exemplo, você pode alterar a forma como as postagens são exibidas na página inicial e classificá-las usando parâmetros específicos. Dado que o loop é a coisa mais fácil de modificar, pode-se obter hacks bastante impressionantes e criativos.

Vamos mostrar mais de 20 hacks de loop que você deve usar agora para fazer isso acontecer, sem a necessidade de instalar plugins.

#1. Coloque publicidade após o primeiro post

Como blogueiro, você sabe muito bem que os anúncios são uma das melhores maneiras de ganhar dinheiro. Obter os cliques tão necessários dos visitantes é certamente uma coisa complicada e muitos blogueiros não desfrutam de altas taxas de cliques. Colocar anúncios após a primeira postagem pode ser uma boa maneira de aumentá-los, então tente este simples ajuste.

Substitua seu loop pelo abaixo. Preste atenção, pois você deve colar o código do anúncio lá:

<?php if (have_posts()) : ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>
  <?php if ($count == 2) : ?>
          //Insert the code of an ad in this line
          <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
          <?php the_excerpt(); ?>
   <?php else : ?>
          <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
          <?php the_excerpt(); ?>
  <?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>

#2. Exibir postagens desatualizadas, mas populares de 1 ano

Most Wanted WordPress Loop Hacks

Algumas das postagens em seu blog, embora criadas há um ano, ainda podem ser populares entre seus leitores. Por exemplo, pode ser um artigo de instruções ou algum outro tipo de conteúdo permanente. Para garantir que essas postagens permaneçam populares, você pode aplicar este truque útil.

Insira este código no arquivo single.php:

<?php
$current_day = date('j');
$last_year = date('Y')-1;
query_posts('day='.$current_day.'&year='.$last_year);
if (have_posts()):
    while (have_posts()) : the_post();
       the_title();
       the_excerpt();
    endwhile;
endif;
?>

#3. Exibir cinco últimas postagens fixas no loop

Most Wanted WordPress Loop Hacks

A função padrão permite colar um post na primeira página. O hack abaixo coloca cinco posts fixos.

Muitos blogueiros pensam em posts fixos como posts em destaque porque permitem que uma entrada seja exibida acima de outras. Se você quiser criar sua própria categoria “Escolhas do Editor”, existe um hack só para isso. O código abaixo deve ser inserido em qualquer lugar do tema para funcionar. Você também pode alterar o número para mostrar menos postagens substituindo o número na quarta linha.

<?php
$sticky = get_option('sticky_posts');
rsort( $sticky );
$sticky = array_slice( $sticky, 0, 5);
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );

if (have_posts()) :
    while (have_posts()) : the_post();
        the_title();
        the_excerpt();
    endwhile;
endif;

?>

#4. Listar postagens de uma categoria específica

Diferencie posts da mesma categoria com o hack abaixo.

Se por algum motivo você precisar diferenciar as postagens que compartilham a mesma categoria (por exemplo, artigos de instruções para redatores de redação), insira o seguinte código no arquivo de loop.

<?php foreach((get_the_category()) as $category) {
      	$thecat = $category->cat_ID . ' ';
    	query_posts('child_of='.$thecat);
 if (have_posts()) : while (have_posts()) : the_post();
    //Classic WP loop
 endwhile;endif;
?>

#5. Fornecer Listagem de Postagens Futuras

Most Wanted WordPress Loop Hacks

Informar os leitores sobre os próximos posts pode despertar o interesse deles e fazê-los retornar ao seu blog para lê-los. Se isso parece uma ótima ideia para você, use o código abaixo para fornecer uma pequena lista de postagens futuras em seu site WordPress.

<?php query_posts('showposts=10&post_status=future'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
    <span class="datetime"><?php the_time('j. F Y'); ?></span></p>
<?php endwhile;
else: ?><p>No future events scheduled.</p>
<?php endif; ?>

#6. Obter postagens enviadas em data específica

Most Wanted WordPress Loop Hacks

Se você costuma se esforçar para encontrar algumas postagens em seu feed, pode procurá-las usando um loop. É possível inserindo o seguinte código que facilita muito a busca. Especificamente, ele recupera entradas lançadas entre duas datas que você mesmo especifica.

<?php
  function filter_where($where = '') {
        $where .= " AND post_date >= '2012-08-19' AND post_date <= '2012-08-11'";
    return $where;
  }
add_filter('posts_where', 'filter_where');
query_posts($query_string);
while (have_posts()) :
      the_post();
      the_content();
endwhile;

?>

#7. Exibir um Loop de Imagens

A galeria de imagens na página inicial de um site WordPress é uma boa ideia, pois a maioria das pessoas aprecia recursos visuais. Se suas postagens contiverem uma imagem de lead, o código abaixo as recuperará para exibi-las em um loop.

Insira o seguinte código no arquivo functions.php:

function catch_that_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];

  if(empty($first_img)){ //Determines a default image
    $first_img = "/images/default.jpg";
  }
  return $first_img;
}

#8. Remover postagens automaticamente definindo uma data de expiração

Suponha que você esteja realizando um concurso para aumentar o número de leitores em seu blog. Quando o concurso termina, você publica os resultados e, mais importante, as respostas, ou dicas e pistas para eles. Claro, eles não devem ser acessíveis aos leitores para sempre porque você pode fazer outro concurso no futuro, certo?

Uma boa maneira de remover postagens mesmo quando você as esqueceu é agendá-las definindo uma data de validade. O loop abaixo substitui o existente e faz exatamente isso.

Não se esqueça de usar o formato mm/dd/aaaa 00:00:00 para substituir o tempo de expiração.

<?php
if (have_posts()) :
while (have_posts()) : the_post(); ?>
$expirationtime = get_post_custom_values('expiration');
if (is_array($expirationtime)) {
$expirestring = implode($expirationtime);
}
 
$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween > 0 ) {
// For example…
the_title();
the_excerpt();
}
endwhile;
endif;
?>

#9. Comentários separados de trackbacks

Most Wanted WordPress Loop Hacks

Uma entrada popular em seu blog será vinculada a muitos outros sites. Para garantir que os leitores possam acompanhar confortavelmente a discussão na seção de comentários, você deve separar comentários e trackbacks.

Tudo o que você precisa fazer é abrir o comments.php e procurar o seguinte:

foreach ($comments as $comment) : ?>
// Comments are displayed here
endforeach;

Encontrei? Ótimo, agora substitua-o por um novo código:

<ul class="commentlist">
<?php //Displays comments only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>
<li>//Comment code goes here</li>
<?php }
endforeach;
</ul>
 
<ul>
<?php //Displays trackbacks only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php }
endforeach;
 
</ul> 

#10. Mostrar postagens relacionadas

Most Wanted WordPress Loop Hacks

A exibição de postagens relacionadas é uma boa maneira de aumentar o número de leitores. Tudo o que você precisa fazer para conseguir isso é colar um código especial no arquivo single.php.

<?php  	
  $backup = $post;  // backup the current object
  $tags = ks29so_get_post_tags($post->ID);
  $tagIDs = array();
  if ($tags) {
    $tagcount = count($tags);
    for ($i = 0; $i < $tagcount; $i++) {
      $tagIDs[$i] = $tags[$i]->term_id;
    }
    $args=array(
      'tag__in' => $tagIDs,
      'post__not_in' => array($post->ID),
      'showposts'=>5,
      'caller_get_posts'=>1
    );
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
      while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
      <?php endwhile;
    } else { ?>
      <h2>No related posts found!</h2>
    <?php }
  }
  $post = $backup;  // copy it back
  ks29so_reset_query(); // to use the original query again
?>

#11. Determinar como as postagens específicas são exibidas na página inicial

Most Wanted WordPress Loop Hacks

A grande maioria dos temas do WordPress mostra todos os posts da mesma forma na página inicial. Se você não gostar, no entanto, você pode alterá-lo e definir quais devem ser exibidos na íntegra e para quais apenas trechos são suficientes.

Encontre o arquivo index.php e procure por loop lá. O código a seguir o substitui:

<?php if (have_posts()) :
    while (have_posts()) : the_post();
         $customField = get_post_custom_values("full");
         if (isset($customField[0])) {
             //Custom field is set, display a full post
              the_title();
              the_content();
         } else {
             // No custom field set, lets display an excerpt
              the_title();
              the_excerpt();
    endwhile;
endif;
?>

#12. Exibir conteúdo promocional acima das postagens na página inicial

Insira o seguinte código no arquivo index.php para adicionar conteúdo promocional.

<div class="content-loop">

#13. Listar todos os autores de um blog em uma página

Most Wanted WordPress Loop Hacks

Basta colar este código em qualquer lugar do loop para exibir a lista de todos os autores.

<ul>
<?php ks29so_list_authors('exclude_admin=0&optioncount=1&show_fullname=1&hide_empty=1'); ?>
</ul>

#14. Use o campo personalizado para mostrar o nome do autor convidado

Se você usa autores convidados em seu blog, é muito provável que não crie uma página separada para eles. Por que não apenas exibir o nome deles?

Insira este código em single.php para fazer isso:

<?php $author = get_post_meta($post->ID, "guest-author", true);
if ($author != "") {
echo $author;
} else {
the_author();
} ?>

#15. Tornar uma imagem um requisito obrigatório para publicação

Postagens com imagens geralmente desfrutam de mais visualizações do que aquelas sem. Abra seu arquivo functions.php para torná-los obrigatórios.

add_action('save_post', 'wpds_check_thumbnail');
add_action('admin_notices', 'wpds_thumbnail_error');
 
function wpds_check_thumbnail( $post_id ) {
 // change to any custom post type 
  if( get_post_type($post_id) != 'post' )
      return;
 
  if ( ! has_post_thumbnail( $post_id ) ) {
   // set a transient to show the users an admin message
    set_transient( "has_post_thumbnail", "no" );
   // unhook this function so it doesn't loop infinitely
    remove_action('save_post', 'wpds_check_thumbnail');
   // update the post set it to draft
    ks29so_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
 
    add_action('save_post', 'wpds_check_thumbnail');
  } else {
    delete_transient( "has_post_thumbnail" );
  }
}
 
function wpds_thumbnail_error() {
 // check if the transient is set, and display the error message
  if ( get_transient( "has_post_thumbnail" ) == "no" ) {
    echo "<div class='error'><p><strong>You must add a Featured Image before publishing this. Don't panic, your post is saved.</strong></p></div>";
    delete_transient( "has_post_thumbnail" );
  }
}

#16. Redirecionar para uma página específica após o registro

Abra o arquivo functions.php e adicione o código abaixo.

function __my_registration_redirect(){
    return home_url( '/my-page' );
}
add_filter( 'registration_redirect', '__my_registration_redirect' );

#17. Insert Ads in Post
Use this code in your functions.php file to wrap ads in a post in any place you want.
Hack
function googleadsense($content){
  $adsensecode = 'Your Ad Codes Here';
  $pattern = '<!-googlead->';
  $content = str_replace($pattern, $adsensecode, $content);
  return $content;      
}
add_filter('the_content', 'googleadsense');

#18. Use códigos de acesso para exibir anúncios

Selecione o local onde deseja inserir um anúncio e cole o seguinte código em functions.php.

function showads() {
    return '
AD’S CODE HERE
';
}
add_shortcode('adsense', 'showads');

#19. Exibir postagens mais comentadas

Most Wanted WordPress Loop Hacks

Adicione o seguinte código ao arquivo functions.php para mostrar as postagens com mais comentários.

function wpb_most_commented_posts() {
ob_start();?>
<ul class="most-commented">
<?php
$query = new
WP_Query('orderby=comment_count&posts_per_page=10');
while($query->have_posts()) : $query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <span class="wpb-comment-count"><?php comments_popup_link('No Comments;', '1 Comment', '% Comments'); ?></span></li>
<?php endwhile; ?>
</ul>
<?php// Turn off output buffering
$output = ob_get_clean();
return $output; }
add_shortcode('wpb_most_commented', 'wpb_most_commented_posts');
add_filter('widget_text', 'do_shortcode');

#20. Ativar suporte a imagens em destaque

A grande maioria dos temas do WordPress suporta imagens em destaque, mas se o seu não, você pode habilitá-lo inserindo-o no arquivo functions.php.

add_theme_support( 'post-thumbnails' );

#21. Mostrar comentários mais recentes

Most Wanted WordPress Loop Hacks

Use este código em qualquer lugar do loop para exibir os cinco comentários mais recentes.

<?php
$query = "SELECT * from $wpdb->comments WHERE comment_approved= '1'
ORDER BY comment_date DESC LIMIT 0 ,5";
$comments = $wpdb->get_results($query);
if ($comments) {
echo '<ul>';
foreach ($comments as $comment) {
$url = '<a href="'. get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID .'" title="'.$comment->comment_author .' | '.get_the_title($comment->comment_post_ID).'">';
echo '<li>';
echo '<div class="img">';
echo $url;
echo get_avatar( $comment->comment_author_email, $img_w);
echo '</a></div>';
echo '<div class="txt">Par: ';
echo $url;
echo $comment->comment_author;
echo '</a></div>';
echo '</li>';
}
echo '</ul>';
}
?>

Pronto para hackear?

Use esses ajustes úteis e melhore a funcionalidade do seu site WordPress!