Cele mai căutate 20 de hack-uri WordPress Loop

Publicat: 2017-12-20

Bucla este procesul principal în WordPress, așa că se găsește aproape în fiecare fișier temă. În esență, este un cod PHP folosit de platformă pentru a afișa postări prin fișierele șablon ale unei teme. Cu alte cuvinte, este imens. De fapt, este critic, deoarece site-ul nu va funcționa fără o buclă.

Modificarea acestui set de caracteristici incredibil de puternice poate avansa capabilitățile site-ului dvs. WordPress. De exemplu, puteți modifica modul în care postările sunt afișate pe pagina principală și le puteți sorta folosind parametri specifici. Având în vedere că bucla este cel mai ușor de modificat, se pot obține hack-uri destul de impresionante și creative.

Să vă arătăm peste 20 de hack-uri în bucle pe care ar trebui să le utilizați chiar acum pentru a face acest lucru, fără a fi nevoie să instalați pluginuri.

#1. Plasați reclamă după prima postare

Ca blogger, știi foarte bine că reclamele sunt una dintre cele mai bune modalități de a câștiga bani. Obținerea acelor clicuri atât de necesare de la vizitatori este cu siguranță un lucru dificil și mulți bloggeri nu se bucură de rate de clic ridicate. Plasarea reclamelor după prima postare poate fi o modalitate bună de a le crește, așa că încercați această modificare simplă.

Înlocuiește-ți bucla cu cea de mai jos. Atenție, deoarece trebuie să lipiți codul anunțului acolo:

<?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. Afișați postări învechite, dar populare de 1 an

Most Wanted WordPress Loop Hacks

Unele dintre postările de pe blogul tău, deși au fost create cu un an în urmă, ar putea fi încă populare printre cititorii tăi. De exemplu, ar putea fi un articol explicativ sau un alt tip de conținut permanent. Pentru a vă asigura că aceste postări rămân populare, puteți aplica acest hack la îndemână.

Introduceți acest cod în fișierul 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. Afișați cele mai recente cinci postări adezive în buclă

Most Wanted WordPress Loop Hacks

Funcția implicită permite să lipiți o postare pe prima pagină. Hack-ul de mai jos plasează cinci postări lipicioase.

Mulți bloggeri consideră postările lipicioase ca postări recomandate, deoarece permit ca o intrare să fie afișată deasupra altora. Dacă doriți să vă creați propria categorie „Selectări ale editorului”, există un hack doar pentru asta. Codul de mai jos trebuie introdus oriunde în tema pentru a funcționa. De asemenea, puteți schimba numărul pentru a afișa mai puține postări, înlocuind numărul din a patra linie.

<?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. Listează postările dintr-o anumită categorie

Diferențiază postările din aceeași categorie cu hack-ul de mai jos.

Dacă dintr-un motiv oarecare trebuie să diferențiați postările care au aceeași categorie (de exemplu, articole de instrucțiuni pentru scriitori de eseuri), introduceți următorul cod în fișierul buclă.

<?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. Furnizați o listă a postărilor viitoare

Most Wanted WordPress Loop Hacks

Informarea cititorilor despre postările viitoare le poate stârni interesul și îi poate face să se întoarcă pe blogul tău pentru a le citi. Dacă vi se pare o idee grozavă, atunci utilizați codul de mai jos pentru a furniza o listă scurtă de postări viitoare pe site-ul dvs. 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. Obțineți postări încărcate la o anumită dată

Most Wanted WordPress Loop Hacks

Dacă deseori te lupți să găsești unele postări în feedul tău, le poți căuta folosind o buclă. Este posibil prin introducerea următorului cod care face căutarea cu adevărat ușoară. Mai exact, preia intrările postate între două date pe care le specificați singur.

<?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. Afișați o buclă de imagini

Galeria de imagini de pe pagina de pornire a unui site WordPress este o idee bună, deoarece majoritatea oamenilor apreciază imaginile. Dacă postările tale conțin o imagine potențială, codul de mai jos le va prelua pentru a fi afișate într-o buclă.

Introduceți următorul cod în fișierul 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. Eliminați automat postările prin setarea unei date de expirare

Să presupunem că derulezi un concurs pentru a crește numărul de cititori pe blogul tău. Când concursul este terminat, publicați rezultatele și, cel mai important, răspunsurile, sau indicii și indicii pentru ele. Desigur, ele nu ar trebui să fie accesibile cititorilor pentru totdeauna pentru că ați putea organiza un alt concurs în viitor, nu?

O modalitate bună de a elimina postările chiar și atunci când ați uitat de ele este să o programați prin setarea unei date de expirare. Bucla de mai jos o înlocuiește pe cea existentă și face exact asta.

Nu uitați să utilizați formatul mm/zz/aaaa 00:00:00 pentru a înlocui timpul de expirare.

<?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 comentariile de trackback-uri

Most Wanted WordPress Loop Hacks

O intrare populară de pe blogul tău va fi legată de multe alte site-uri. Pentru a vă asigura că cititorii pot urmări în mod confortabil discuția din secțiunea de comentarii, ar trebui să separați comentariile și trackback-urile.

Tot ce trebuie să faceți este să deschideți comments.php și să căutați următoarele:

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

L-am gasit? Grozav, acum înlocuiește-l cu un cod nou:

<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. Afișați postări înrudite

Most Wanted WordPress Loop Hacks

Afișarea postărilor conexe este o modalitate bună de a crește numărul de cititori. Tot ce trebuie să faceți pentru a obține acest lucru este să lipiți un cod special în fișierul 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. Stabiliți cum sunt afișate anumite postări pe pagina de pornire

Most Wanted WordPress Loop Hacks

Marea majoritate a temelor WordPress arată toate postările în același mod pe pagina de pornire. Dacă nu vă place, însă, îl puteți schimba și defini care dintre ele ar trebui să fie afișate complet și pentru care sunt suficiente doar fragmente.

Găsiți fișierul index.php și căutați bucla acolo. Următorul cod îl înlocuiește:

<?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. Afișați conținut promoțional deasupra postărilor de pe pagina de pornire

Introduceți următorul cod în fișierul index.php pentru a adăuga conținut promoțional.

<div class="content-loop">

#13. Listați toți autorii unui blog într-o pagină

Most Wanted WordPress Loop Hacks

Doar lipiți acest cod oriunde în buclă pentru a afișa lista tuturor autorilor.

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

#14. Utilizați câmpul personalizat pentru a afișa numele autorului invitat

Dacă folosiți autori invitați pe blogul dvs., este foarte probabil să nu creați o pagină separată pentru ei. De ce nu le afișați pur și simplu numele?

Pentru a face acest lucru, introduceți acest cod în single.php:

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

#15. Faceți din imagine o cerință obligatorie pentru publicare

Postările cu imagini se bucură adesea de mai multe vizualizări decât cele fără. Deschideți fișierul functions.php pentru a le face obligatorii.

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. Redirecționați către o anumită pagină după înregistrare

Deschideți fișierul functions.php și adăugați codul de mai jos.

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. Utilizați coduri scurte pentru a afișa anunțuri

Selectați locul în care doriți să introduceți un anunț și inserați următorul cod în functions.php.

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

#19. Afișează cele mai comentate postări

Most Wanted WordPress Loop Hacks

Adăugați următorul cod în fișierul functions.php pentru a afișa postările cu cele mai multe comentarii.

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. Activați suport pentru imaginile prezentate

Marea majoritate a temelor WordPress acceptă imaginile prezentate, dar dacă ale tale nu o fac, o poți activa inserând-o în fișierul functions.php.

add_theme_support( 'post-thumbnails' );

#21. Afișează cele mai recente comentarii

Most Wanted WordPress Loop Hacks

Utilizați acest cod oriunde în buclă pentru a afișa cele mai recente cinci comentarii.

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

Ești gata să piratezi?

Utilizați aceste ajustări utile și îmbunătățiți funcționalitatea site-ului dvs. WordPress!