20+ hacks de boucle WordPress les plus recherchés

7

La boucle est le processus principal de WordPress, elle se trouve donc presque dans tous les fichiers de thème. Il s'agit essentiellement d'un code PHP utilisé par la plate-forme pour afficher les publications via les fichiers de modèle d'un thème. Autrement dit, c'est énorme. En fait, c'est critique, car le site ne fonctionnera pas sans boucle.

Ajuster cet ensemble de fonctionnalités incroyablement puissantes peut faire progresser les capacités de votre site WordPress. Par exemple, vous pouvez modifier la façon dont les messages sont affichés sur la page d'accueil et les trier à l'aide de paramètres spécifiques. Étant donné que la boucle est la chose la plus facile à modifier, on peut obtenir des hacks assez impressionnants et créatifs.

Montrons plus de 20 hacks de boucle que vous devriez utiliser dès maintenant pour y arriver, sans avoir besoin d'installer de plugins.

1 Placez la publicité après le premier message

En tant que blogueur, vous savez très bien que les publicités sont l'un des meilleurs moyens de gagner de l'argent. Obtenir ces clics indispensables de la part des visiteurs est certainement une chose délicate et de nombreux blogueurs ne bénéficient pas de taux de clics élevés. Placer des publicités après le premier message peut être un bon moyen de les augmenter, alors essayez ce simple ajustement.

Remplacez votre boucle par celle ci-dessous. Attention, vous devez y coller le code de l'annonce :

<?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 Affichez des messages obsolètes mais populaires datant d'un an

Certains des articles de votre blog, bien que créés il y a un an, peuvent toujours être populaires parmi vos lecteurs. Par exemple, il peut s'agir d'un article pratique ou d'un autre type de contenu à feuilles persistantes. Pour vous assurer que ces messages restent populaires, vous pouvez appliquer ce hack pratique.

Insérez ce code dans le fichier 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 Afficher les cinq derniers messages collants dans la boucle

La fonction par défaut permet de coller une publication en première page. Le hack ci-dessous place cinq messages collants.

De nombreux blogueurs considèrent les articles collants comme des articles en vedette, car ils permettent à une entrée de s'afficher au-dessus des autres. Si vous souhaitez créer votre propre catégorie "Choix de l'éditeur", il existe un hack juste pour cela. Le code ci-dessous doit être inséré n'importe où dans le thème pour fonctionner. Vous pouvez également modifier le nombre pour afficher moins de messages en remplaçant le nombre dans le quatrième ligne.

<?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 Lister les messages d'une catégorie particulière

Différenciez les messages de la même catégorie avec le hack ci-dessous.

Si, pour une raison quelconque, vous devez différencier les articles qui partagent la même catégorie (par exemple, des articles pratiques pour les rédacteurs d'essais), insérez le code suivant dans le fichier de boucle.

<?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 Fournir une liste des futurs messages

Informer les lecteurs des articles à venir pourrait susciter leur intérêt et les inciter à revenir sur votre blog pour les lire. Si cela vous semble être une bonne idée, utilisez le code ci-dessous pour fournir une courte liste des publications à venir sur votre 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 Obtenez des publications téléchargées à une date précise

Si vous avez souvent du mal à trouver des publications dans votre flux, vous pouvez les rechercher à l'aide d'une boucle. C'est possible en insérant le code suivant qui rend la recherche vraiment facile. Concrètement, il récupère les entrées postées entre deux dates que vous spécifiez vous-même.

<?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 Afficher une boucle d'images

La galerie d'images sur la page de démarrage d'un site Web WordPress est une bonne idée car la plupart des gens apprécient les visuels. Si vos messages contiennent une image principale, le code ci-dessous les récupérera pour les présenter en boucle.

Insérez le code suivant dans le fichier 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.webp";
  }
  return $first_img;
}
8 Supprimer automatiquement les publications en définissant une date d'expiration

Supposons que vous organisiez un concours pour augmenter le lectorat de votre blog. Lorsque le concours est terminé, vous publiez les résultats et, surtout, les réponses, ou les indices et indices les concernant. Bien sûr, ils ne devraient pas être accessibles aux lecteurs pour toujours car vous pourriez organiser un autre concours à l'avenir, n'est-ce pas ?

Un bon moyen de supprimer des publications même lorsque vous les avez oubliées est de les programmer en définissant une date d'expiration. La boucle ci-dessous remplace votre boucle existante et fait exactement cela.

N'oubliez pas d'utiliser le format mm/jj/aaaa 00:00:00 pour remplacer l'heure d'expiration.

<?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 Séparez les commentaires des rétroliens

Une entrée populaire sur votre blog sera liée à de nombreux autres sites. Pour vous assurer que les lecteurs peuvent suivre confortablement la discussion dans la section des commentaires, vous devez séparer les commentaires et les rétroliens.

Tout ce que vous avez à faire est d'ouvrir comments.php et de rechercher ce qui suit :

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

Vous l'avez trouvé ? Super, remplacez-le maintenant par un nouveau code :

<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 Afficher les publications connexes

L'affichage d'articles connexes est un bon moyen d'augmenter le lectorat. Tout ce que vous avez à faire pour y parvenir est de coller un code spécial dans le fichier 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 Déterminer comment les messages particuliers sont affichés sur la page d'accueil

La grande majorité des thèmes WordPress affichent tous les articles de la même manière sur la page de démarrage. Si vous ne l'aimez pas, vous pouvez cependant le modifier et définir ceux qui doivent être entièrement affichés et pour lesquels seuls des extraits suffisent.

Trouvez le fichier index.php et recherchez-y une boucle. Le code suivant le remplace :

<?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 Afficher le contenu promotionnel au-dessus des publications sur la page d'accueil

Insérez le code suivant dans le fichier index.php pour ajouter du contenu promotionnel.

<div class="content-loop">
13 Lister tous les auteurs d'un blog dans une page

Collez simplement ce code n'importe où dans la boucle pour afficher la liste de tous les auteurs.

<ul>
<?php ks29so_list_authors('exclude_admin=0&optioncount=1&show_fullname=1&hide_empty=1'); ?>
</ul>
14 Utilisez un champ personnalisé pour afficher le nom de l'auteur invité

Si vous utilisez des auteurs invités sur votre blog, il est très probable que vous ne leur créiez pas une page distincte. Pourquoi ne pas simplement afficher leur nom à la place ?

Insérez ce code dans single.php pour le faire :

<?php $author = get_post_meta($post->ID, "guest-author", true);
if ($author != "") {
echo $author;
} else {
the_author();
} ?>
15 Faire d'une image une exigence obligatoire pour la publication

Les publications avec images bénéficient souvent de plus de vues que celles qui n'en ont pas. Ouvrez votre fichier functions.php pour les rendre obligatoires.

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 id='message' 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 Rediriger vers une page spécifique après l'inscription

Ouvrez le fichier functions.php et ajoutez le code ci-dessous.

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 Utilisez des codes courts pour afficher des annonces

Sélectionnez l'endroit où vous souhaitez insérer une annonce et collez le code suivant dans functions.php.

function showads() {
    return '
AD'S CODE HERE
';
}
add_shortcode('adsense', 'showads');
19 Afficher les articles les plus commentés

Ajoutez le code suivant au fichier functions.php pour afficher les messages avec le plus de commentaires.

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 Activer la prise en charge des images en vedette

La grande majorité des thèmes WordPress prennent en charge les images en vedette, mais si le vôtre ne le fait pas, vous pouvez l'activer en l'insérant dans le fichier functions.php.

add_theme_support( 'post-thumbnails' );
21 Afficher les derniers commentaires

Utilisez ce code n'importe où dans la boucle pour afficher les cinq derniers commentaires.

<?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>';
}
?>

Prêt à pirater ?

Utilisez ces ajustements pratiques et améliorez les fonctionnalités de votre site WordPress !

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More