Oltre 20 hack di loop di WordPress più ricercati

9

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

La modifica di questo set di funzionalità incredibilmente potenti può migliorare 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 loop hack che dovresti usare adesso per realizzarlo, senza la necessità di installare plugin.

1 Inserisci la pubblicità dopo il primo post

Come blogger, sai benissimo che gli annunci sono uno dei modi migliori per fare soldi. Ottenere quei clic tanto necessari dai visitatori è certamente 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 questa semplice modifica.

Sostituisci il tuo ciclo con quello qui sotto. Fai attenzione, perché devi incollare il codice dell’annuncio 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 Mostra post obsoleti ma popolari di 1 anno fa

Alcuni dei post sul tuo blog, sebbene creati un anno fa, potrebbero essere ancora popolari tra i tuoi lettori. Ad esempio, potrebbe essere un articolo di istruzioni o qualche 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 Visualizza i cinque ultimi post appiccicosi nel ciclo

La funzione predefinita consente di incollare un post in prima pagina. L’hack qui sotto inserisce cinque messaggi appiccicosi.

Molti blogger considerano i post appiccicosi come post in primo piano perché consentono di visualizzare una voce sopra le altre. Se vuoi creare la tua categoria "Editor’s Picks", c’è un trucco apposta per questo. Il codice qui sotto deve essere inserito in qualsiasi punto del tema per funzionare. Puoi anche cambiare il numero per mostrare meno post sostituendo il numero nel 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 post di una particolare categoria

Differenziare i post della stessa categoria con l’hack qui sotto.

Se per qualche motivo hai bisogno di differenziare i post che condividono la stessa categoria (ad esempio, articoli pratici per autori di saggi), inserisci il seguente codice nel file 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

Far conoscere ai lettori i prossimi post 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 dei prossimi post 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

Se hai spesso difficoltà a trovare alcuni post nel tuo feed, puoi cercarli utilizzando un loop. E’ possibile inserendo il seguente codice che rende la ricerca molto semplice. 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 loop di immagini

La galleria di immagini sulla 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 loop.

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.webp";
  }
  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, o suggerimenti e indizi. Certo, 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 è programmarli impostando una data di scadenza. Il ciclo sottostante 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 Commenti separati dai trackback

Una voce popolare sul tuo blog sarà collegata da molti altri siti. Per assicurarti che i lettori possano seguire comodamente la discussione nella sezione dei 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

La visualizzazione di post correlati è un buon modo per aumentare i 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 i post specifici sulla home page

La stragrande maggioranza dei temi WordPress mostra tutti i post allo stesso modo nella pagina iniziale. Se non ti piace, però, puoi cambiarlo e definire quali debbano essere visualizzati per intero e per quali siano sufficienti 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 Mostra il contenuto promozionale 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

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 Utilizzare il campo personalizzato per mostrare il nome dell’autore ospite

Se utilizzi autori ospiti sul tuo blog, è molto probabile che non crei una pagina separata per loro. Perché invece non visualizzare 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 Rendere 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 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 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 Usa i codici brevi per visualizzare gli annunci

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

function showads() {
    return '
AD'S CODE HERE
';
}
add_shortcode('adsense', 'showads');
19 Visualizza i post più commentati

Aggiungi il seguente codice 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 delle immagini in primo piano

La stragrande maggioranza dei temi WordPress supporta le immagini in primo piano, ma se il tuo non lo fa, puoi abilitarlo inserendolo nel file functions.php.

add_theme_support( 'post-thumbnails' );
21 Mostra gli ultimi commenti

Usa questo codice ovunque nel ciclo per visualizzare i cinque commenti più recenti.

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

Usa queste utili modifiche e migliora la funzionalità del tuo sito 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