Oltre 20 hack di loop WordPress più ricercati

Pubblicato: 2017-12-20

Il ciclo è il processo principale in WordPress, quindi si trova in quasi tutti i file di temi. In sostanza, è un codice PHP utilizzato dalla piattaforma per visualizzare i post tramite i file modello di un tema. In altre parole, è enorme. In effetti, è fondamentale, perché il sito non funzionerà senza un ciclo.

Modificare questo set di funzionalità incredibilmente potenti può far avanzare le capacità del tuo sito WordPress. Ad esempio, puoi modificare il modo in cui i post vengono visualizzati sulla home page e ordinarli utilizzando parametri specifici. Dato che il loop è la cosa più semplice da modificare, si possono ottenere hack piuttosto impressionanti e creativi.

Ti mostriamo oltre 20 hack di loop che dovresti usare in questo momento per realizzarlo, senza la necessità di installare plug-in.

# 1. Inserisci la pubblicità dopo il primo post

Come blogger, sai benissimo che le pubblicità sono uno dei modi migliori per fare soldi. Ottenere quei clic tanto necessari dai visitatori è sicuramente una cosa complicata e molti blogger non godono di percentuali di clic elevate. Inserire annunci dopo il primo post può essere un buon modo per aumentarli, quindi prova questo semplice ritocco.

Sostituisci il tuo loop con quello qui sotto. Fai attenzione, perché devi incollare lì il codice dell'annuncio:

<?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. Visualizza post obsoleti ma popolari di 1 anno

Most Wanted WordPress Loop Hacks

Alcuni dei post sul tuo blog, anche se creati un anno fa, potrebbero essere ancora popolari tra i tuoi lettori. Ad esempio, potrebbe essere un articolo di istruzioni o un altro tipo di contenuto sempreverde. Per assicurarti che questi post rimangano popolari, puoi applicare questo pratico trucco.

Inserisci questo codice nel file 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. Mostra gli ultimi cinque post permanenti nel loop

Most Wanted WordPress Loop Hacks

La funzione predefinita consente di incollare un post in prima pagina. L'hack in basso inserisce cinque post appiccicosi.

Molti blogger considerano i post persistenti come post in primo piano perché consentono a una voce di essere visualizzata sopra le altre. Se vuoi creare la tua categoria "Scelte dell'editore", c'è un trucco proprio per questo. Il codice seguente deve essere inserito in un punto qualsiasi del tema per funzionare. Puoi anche modificare il numero per mostrare meno post sostituendo il numero nella quarta riga.

<?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. Elenca i messaggi di una particolare categoria

Differenzia i post della stessa categoria con l'hack di seguito.

Se per qualche motivo devi differenziare i post che condividono la stessa categoria (ad esempio, articoli di istruzioni per scrittori di saggi), inserisci il codice seguente nel file di 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. Fornire un elenco di post futuri

Most Wanted WordPress Loop Hacks

Far conoscere ai lettori i post imminenti potrebbe suscitare il loro interesse e farli tornare sul tuo blog per leggerli. Se ti sembra un'ottima idea, usa il codice qui sotto per fornire un breve elenco di post imminenti sul tuo sito 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. Ricevi i post caricati in una data specifica

Most Wanted WordPress Loop Hacks

Se hai spesso difficoltà a trovare alcuni post nel tuo feed, puoi cercarli usando un loop. E' possibile inserendo il seguente codice che rende la ricerca davvero facile. In particolare, recupera le voci pubblicate tra due date specificate dall'utente.

<?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. Visualizza un ciclo di immagini

La galleria di immagini nella pagina iniziale di un sito Web WordPress è una buona idea poiché la maggior parte delle persone apprezza le immagini. Se i tuoi post contengono un'immagine principale, il codice seguente li recupererà per mostrarli in un ciclo.

Inserisci il seguente codice nel file 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. Rimuovi automaticamente i post impostando una data di scadenza

Supponiamo che tu stia organizzando un concorso per aumentare il numero di lettori sul tuo blog. Al termine del concorso, pubblichi i risultati e, soprattutto, le risposte, i suggerimenti e gli indizi. Ovviamente, non dovrebbero essere accessibili ai lettori per sempre perché potresti organizzare un altro concorso in futuro, giusto?

Un buon modo per rimuovere i post anche quando te ne sei dimenticato è programmarlo impostando una data di scadenza. Il ciclo seguente sostituisce quello esistente e fa proprio questo.

Non dimenticare di utilizzare il formato mm/gg/aaaa 00:00:00 per sostituire l'ora di scadenza.

<?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. Separa i commenti dai trackback

Most Wanted WordPress Loop Hacks

Una voce popolare sul tuo blog sarà collegata da molti altri siti. Per assicurarti che i lettori possano seguire comodamente la discussione nella sezione commenti, dovresti separare commenti e trackback.

Tutto quello che devi fare è aprire comments.php e cercare quanto segue:

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

Trovato? Ottimo, ora sostituiscilo con un nuovo codice:

<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. Mostra post correlati

Most Wanted WordPress Loop Hacks

La visualizzazione di post correlati è un buon modo per aumentare il numero di lettori. Tutto quello che devi fare per ottenere ciò è incollare un codice speciale nel file 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. Determina come vengono visualizzati post particolari sulla home page

Most Wanted WordPress Loop Hacks

La stragrande maggioranza dei temi WordPress mostra tutti i post allo stesso modo nella pagina iniziale. Se non ti piace, invece, puoi modificarlo e definire quali devono essere visualizzati per intero e per i quali bastano solo degli estratti.

Trova il file index.php e cerca il loop lì. Il seguente codice lo sostituisce:

<?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. Visualizza i contenuti promozionali sopra i post sulla home page

Inserisci il seguente codice nel file index.php per aggiungere contenuti promozionali.

<div class="content-loop">

# 13. Elenca tutti gli autori di un blog in una pagina

Most Wanted WordPress Loop Hacks

Basta incollare questo codice in un punto qualsiasi del ciclo per visualizzare l'elenco di tutti gli autori.

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

# 14. Usa il campo personalizzato per mostrare il nome dell'autore ospite

Se utilizzi autori ospiti sul tuo blog, è molto probabile che tu non crei una pagina separata per loro. Perché invece non mostrare semplicemente il loro nome?

Inserisci questo codice in single.php per farlo:

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

# 15. Rendi un'immagine un requisito obbligatorio per la pubblicazione

I post con immagini spesso godono di più visualizzazioni rispetto a quelli senza. Apri il tuo file functions.php per renderli obbligatori.

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. Reindirizzamento a una pagina specifica dopo la registrazione

Apri il file functions.php e aggiungi il codice qui sotto.

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. Utilizza gli shortcode per visualizzare gli annunci

Seleziona il luogo in cui desideri inserire un annuncio e incolla il seguente codice su functions.php.

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

# 19. Mostra i post più commentati

Most Wanted WordPress Loop Hacks

Aggiungi il codice seguente al file functions.php per mostrare i post con il maggior numero di commenti.

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. Abilita il supporto per le immagini in primo piano

La stragrande maggioranza dei temi WordPress supporta le immagini in primo piano, ma in caso contrario, puoi abilitarlo inserendolo nel file functions.php.

add_theme_support( 'post-thumbnails' );

#21. Mostra gli ultimi commenti

Most Wanted WordPress Loop Hacks

Utilizzare questo codice in qualsiasi punto del ciclo per visualizzare gli ultimi cinque commenti.

<?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 per hackerare?

Usa queste utili modifiche e migliora la funzionalità del tuo sito WordPress!