Über 20 der meistgesuchten WordPress-Loop-Hacks
Veröffentlicht: 2017-12-20Die Schleife ist der Hauptprozess in WordPress, daher findet man sie fast in jeder Theme-Datei. Im Wesentlichen handelt es sich um einen PHP-Code, der von der Plattform verwendet wird, um Beiträge über die Vorlagendateien eines Themas anzuzeigen. Mit anderen Worten, es ist riesig. Tatsächlich ist es kritisch, weil die Site ohne eine Schleife nicht funktioniert.
Das Optimieren dieser Reihe unglaublich leistungsstarker Funktionen kann die Fähigkeiten Ihrer WordPress-Site verbessern. So können Sie beispielsweise die Darstellung der Beiträge auf der Startseite verändern und nach bestimmten Parametern sortieren. Da die Schleife am einfachsten zu modifizieren ist, kann man ziemlich beeindruckende und kreative Hacks bekommen.
Lassen Sie uns Ihnen mehr als 20 Loop-Hacks zeigen, die Sie sofort verwenden sollten, um dies zu erreichen, ohne dass Plugins installiert werden müssen.
#1. Platzieren Sie Werbung nach dem ersten Post
Als Blogger wissen Sie sehr gut, dass Anzeigen eine der besten Möglichkeiten sind, Geld zu verdienen. Diese dringend benötigten Klicks von Besuchern zu bekommen, ist sicherlich eine knifflige Sache, und viele Blogger mögen keine hohen Klickraten. Das Platzieren von Anzeigen nach dem ersten Post kann eine gute Möglichkeit sein, sie zu erhöhen, also versuchen Sie es mit dieser einfachen Optimierung.
Ersetzen Sie Ihre Schleife durch die untenstehende. Achten Sie darauf, dass Sie dort den Code der Anzeige einfügen müssen:
<?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. Zeigen Sie veraltete, aber beliebte 1-jährige Beiträge an
Einige der Beiträge in Ihrem Blog, obwohl sie vor einem Jahr erstellt wurden, sind möglicherweise immer noch bei Ihren Lesern beliebt. Beispielsweise könnte es sich um einen How-to-Artikel oder eine andere Art von Evergreen-Content handeln. Um sicherzustellen, dass diese Posts beliebt bleiben, können Sie diesen praktischen Hack anwenden.
Fügen Sie diesen Code in die single.php-Datei ein:
<?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. Zeigen Sie fünf neueste Sticky Posts in der Schleife an
Die Standardfunktion erlaubt es, einen Beitrag auf die Titelseite zu kleben. Der folgende Hack platziert fünf Sticky Posts.
Viele Blogger betrachten Sticky Posts als hervorgehobene Posts, weil sie ermöglichen, dass ein Eintrag über anderen angezeigt wird. Wenn Sie Ihre eigene Kategorie „Empfehlungen der Redaktion“ erstellen möchten, gibt es dafür einen Hack. Der folgende Code muss irgendwo im Design eingefügt werden, damit er funktioniert. Sie können die Zahl auch ändern, um weniger Beiträge anzuzeigen, indem Sie die Zahl in der vierten Zeile ersetzen.
<?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. Listen Sie Beiträge aus einer bestimmten Kategorie auf
Unterscheiden Sie Posts aus derselben Kategorie mit dem folgenden Hack.
Wenn Sie aus irgendeinem Grund die Beiträge derselben Kategorie unterscheiden müssen (z. B. Artikel mit Anleitungen für Essay-Autoren), fügen Sie den folgenden Code in die Schleifendatei ein.
<?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. Stellen Sie eine Liste zukünftiger Posts bereit
Wenn Sie die Leser über die bevorstehenden Posts informieren, kann dies ihr Interesse wecken und sie dazu bringen, zu Ihrem Blog zurückzukehren, um sie zu lesen. Wenn dies für Sie nach einer großartigen Idee klingt, verwenden Sie den folgenden Code, um eine kurze Liste der bevorstehenden Posts auf Ihrer WordPress-Site bereitzustellen.
<?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. Erhalten Sie Beiträge, die an einem bestimmten Datum hochgeladen werden
Wenn Sie häufig Schwierigkeiten haben, einige Posts in Ihrem Feed zu finden, können Sie mit einer Schleife danach suchen. Es ist möglich, indem Sie den folgenden Code einfügen, der die Suche wirklich einfach macht. Insbesondere werden Einträge abgerufen, die zwischen zwei von Ihnen festgelegten Daten gepostet wurden.
<?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. Zeigen Sie eine Schleife von Bildern an
Die Bildergalerie auf der Startseite einer WordPress-Website ist eine gute Idee, da die meisten Menschen visuelle Elemente zu schätzen wissen. Wenn Ihre Posts ein Lead-Bild enthalten, ruft der unten stehende Code sie ab, um sie in einer Schleife zu präsentieren.
Fügen Sie den folgenden Code in die Datei functions.php ein:
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. Beiträge automatisch entfernen, indem Sie ein Ablaufdatum festlegen
Angenommen, Sie veranstalten einen Wettbewerb, um die Leserschaft Ihres Blogs zu erhöhen. Wenn der Wettbewerb beendet ist, veröffentlichen Sie die Ergebnisse und vor allem die Antworten oder Hinweise und Hinweise darauf. Natürlich sollten sie den Lesern nicht für immer zugänglich sein, da Sie in Zukunft möglicherweise einen weiteren Wettbewerb veranstalten, oder?
Eine gute Möglichkeit, Beiträge zu entfernen, selbst wenn Sie sie vergessen haben, besteht darin, dies zu planen, indem Sie ein Ablaufdatum festlegen. Die folgende Schleife ersetzt Ihre vorhandene und tut genau das.
Vergessen Sie nicht, das Format mm/tt/jjjj 00:00:00 zu verwenden, um die Ablaufzeit zu ersetzen.
<?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. Kommentare von Trackbacks trennen
Ein beliebter Eintrag in Ihrem Blog wird von vielen anderen Seiten verlinkt. Damit die Leser der Diskussion im Kommentarbereich bequem folgen können, sollten Sie Kommentare und Trackbacks trennen.
Alles, was Sie tun müssen, ist comments.php zu öffnen und nach Folgendem zu suchen:
foreach ($comments as $comment) : ?> // Comments are displayed here endforeach;
Fand es? Großartig, jetzt ersetzen Sie es durch einen neuen 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. Ähnliche Beiträge anzeigen
Das Anzeigen verwandter Beiträge ist eine gute Möglichkeit, die Leserschaft zu erhöhen. Dazu müssen Sie lediglich einen speziellen Code in die single.php-Datei einfügen.
<?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. Bestimmen Sie, wie bestimmte Beiträge auf der Homepage angezeigt werden
Die allermeisten WordPress-Themes zeigen alle Beiträge auf der Startseite gleich an. Wenn es Ihnen aber nicht gefällt, können Sie es ändern und festlegen, welche vollständig angezeigt werden sollen und für welche nur Auszüge ausreichen.
Suchen Sie die Datei index.php und suchen Sie dort nach einer Schleife. Der folgende Code ersetzt es:
<?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. Zeigen Sie Werbeinhalte über den Beiträgen auf der Startseite an
Fügen Sie den folgenden Code in die Datei index.php ein, um Werbeinhalte hinzuzufügen.
<div class="content-loop">
#13. Alle Autoren eines Blogs auf einer Seite auflisten
Fügen Sie diesen Code einfach irgendwo in die Schleife ein, um die Liste aller Autoren anzuzeigen.
<ul> <?php ks29so_list_authors('exclude_admin=0&optioncount=1&show_fullname=1&hide_empty=1'); ?> </ul>
#14. Verwenden Sie das benutzerdefinierte Feld, um den Namen des Gastautors anzuzeigen
Wenn Sie Gastautoren in Ihrem Blog verwenden, ist es sehr wahrscheinlich, dass Sie keine separate Seite für sie erstellen. Warum zeigen sie stattdessen nicht einfach ihren Namen an?
Fügen Sie dazu diesen Code in single.php ein:
<?php $author = get_post_meta($post->ID, "guest-author", true); if ($author != "") { echo $author; } else { the_author(); } ?>
#fünfzehn. Machen Sie ein Bild zur obligatorischen Voraussetzung für die Veröffentlichung
Posts mit Bildern genießen oft mehr Aufrufe als solche ohne. Öffnen Sie Ihre Datei functions.php, um sie obligatorisch zu machen.
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. Weiterleitung auf eine bestimmte Seite nach der Registrierung
Öffnen Sie die Datei functions.php und fügen Sie den folgenden Code hinzu.
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. Verwenden Sie Shortcodes, um Anzeigen anzuzeigen
Wählen Sie die Stelle aus, an der Sie eine Anzeige einfügen möchten, und fügen Sie den folgenden Code in die functions.php ein.
function showads() { return ' AD’S CODE HERE '; } add_shortcode('adsense', 'showads');
#19. Am meisten kommentierte Beiträge anzeigen
Fügen Sie der Datei functions.php den folgenden Code hinzu, um die Beiträge mit den meisten Kommentaren anzuzeigen.
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. Aktivieren Sie die Unterstützung für ausgewählte Bilder
Die überwiegende Mehrheit der WordPress-Designs unterstützt vorgestellte Bilder, aber wenn dies nicht der Fall ist, können Sie es aktivieren, indem Sie es in die Datei functions.php einfügen.
add_theme_support( 'post-thumbnails' );
#21. Neueste Kommentare anzeigen
Verwenden Sie diesen Code an einer beliebigen Stelle in der Schleife, um die fünf neuesten Kommentare anzuzeigen.
<?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>'; } ?>
Bereit zum Hacken?
Verwenden Sie diese praktischen Optimierungen und verbessern Sie die Funktionalität Ihrer WordPress-Site!