20+ WordPress Loop Hacks ที่ต้องการมากที่สุด
เผยแพร่แล้ว: 2017-12-20วนรอบเป็นกระบวนการหลักใน WordPress ดังนั้นจึงพบได้เกือบทุกไฟล์ธีม โดยพื้นฐานแล้ว มันคือโค้ด PHP ที่แพลตฟอร์มใช้เพื่อแสดงโพสต์ผ่านไฟล์เทมเพลตของธีม กล่าวอีกนัยหนึ่งมันใหญ่มาก อันที่จริง มันสำคัญมากเพราะไซต์จะไม่ทำงานโดยไม่มีการวนซ้ำ
การปรับแต่งชุดคุณลักษณะที่ทรงพลังอย่างเหลือเชื่อนี้อาจเพิ่มขีดความสามารถของไซต์ WordPress ของคุณ ตัวอย่างเช่น คุณสามารถเปลี่ยนวิธีการแสดงโพสต์ในหน้าแรกและจัดเรียงโดยใช้พารามิเตอร์เฉพาะ เนื่องจากลูปเป็นสิ่งที่ง่ายที่สุดในการปรับเปลี่ยน เราจึงสามารถแฮ็กที่น่าประทับใจและสร้างสรรค์ได้
มาแสดงให้คุณเห็นการแฮ็กแบบวนซ้ำมากกว่า 20 รายการที่คุณควรใช้ตอนนี้เพื่อทำให้มันเกิดขึ้น โดยไม่ต้องติดตั้งปลั๊กอิน
#1. วางโฆษณาหลังโพสต์แรก
ในฐานะบล็อกเกอร์ คุณทราบดีว่าโฆษณาเป็นหนึ่งในวิธีที่ดีที่สุดในการสร้างรายได้ การได้รับคลิกที่จำเป็นมากจากผู้เยี่ยมชมนั้นเป็นเรื่องยากอย่างแน่นอน และบล็อกเกอร์จำนวนมากไม่ชอบอัตราการคลิกผ่านที่สูง การวางโฆษณาหลังจากโพสต์แรกอาจเป็นวิธีที่ดีในการเพิ่มโฆษณา ดังนั้นให้ลองใช้การปรับแต่งง่ายๆ นี้
แทนที่ลูปของคุณด้วยอันด้านล่าง ให้ความสนใจ เนื่องจากคุณต้องวางโค้ดของโฆษณาที่นั่น:
[php]
<?php if (have_posts()) : ?>
<?php $นับ = 0; ?>
<?php ในขณะที่ (have_posts()) : the_post(); ?>
<?php $นับ++; ?>
<?php if ($นับ == 2) : ?>
//ใส่โค้ดของโฆษณาในบรรทัดนี้
<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 เมื่อสิ้นสุด; ?>
<?php endif; ?>
[/php]
#2. แสดงโพสต์เก่าอายุ 1 ปีแต่เป็นที่นิยม
โพสต์บางส่วนในบล็อกของคุณ แม้ว่าจะสร้างขึ้นเมื่อหนึ่งปีที่แล้ว แต่อาจยังคงได้รับความนิยมในหมู่ผู้อ่านของคุณ ตัวอย่างเช่น อาจเป็นบทความฮาวทูหรือเนื้อหาที่ไม่สิ้นสุดประเภทอื่นๆ เพื่อให้แน่ใจว่าโพสต์เหล่านี้เป็นที่นิยม คุณสามารถใช้แฮ็คที่มีประโยชน์นี้ได้
ใส่รหัสนี้ลงในไฟล์ single.php:
[php]
<?php
$current_day = วันที่ ('j');
$last_year = date('Y')-1;
query_posts('day='.$current_day.'&year='.$last_year);
ถ้า (have_posts()):
ในขณะที่ (have_posts()) : the_post();
the_title();
the_excerpt();
ในที่สุด;
เอนดิฟ;
?>
[/php]
#3. แสดงโพสต์ Sticky ล่าสุดห้าโพสต์ในลูป
ฟังก์ชั่นเริ่มต้นช่วยให้ติดหนึ่งโพสต์ที่หน้าแรก แฮ็คด้านล่างวางห้าโพสต์ที่ติดหนึบ
บล็อกเกอร์หลายคนคิดว่าโพสต์ที่ติดหนึบเป็นโพสต์เด่นเพราะอนุญาตให้แสดงรายการเหนือคนอื่นๆ หากคุณต้องการสร้างหมวดหมู่ "คัดสรรโดยบรรณาธิการ" ของคุณเอง มีวิธีแฮ็กสำหรับสิ่งนั้น ต้องแทรกโค้ดด้านล่างที่ใดก็ได้ในธีมจึงจะใช้งานได้ คุณยังสามารถเปลี่ยนหมายเลขเพื่อแสดงโพสต์น้อยลงได้ด้วยการแทนที่หมายเลขในบรรทัดที่สี่
[php]
<?php
$เหนียว = get_option('sticky_posts');
rsort( $เหนียว );
$เหนียว = array_slice( $เหนียว, 0, 5);
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
ถ้า (have_posts()) :
ในขณะที่ (have_posts()) : the_post();
the_title();
the_excerpt();
ในที่สุด;
เอนดิฟ;
?>
[/php]
#4. แสดงรายการโพสต์จากหมวดหมู่เฉพาะ
แยกแยะโพสต์จากหมวดหมู่เดียวกันด้วยการแฮ็กด้านล่าง
หากคุณต้องการแยกโพสต์ที่มีหมวดหมู่เดียวกันด้วยเหตุผลบางอย่าง (เช่น บทความฮาวทูสำหรับนักเขียนเรียงความ) ให้ใส่โค้ดต่อไปนี้ลงในไฟล์ลูป
[php]
<?php foreach((get_the_category()) เป็น $category) {
$thecat = $category->cat_ID . ' ';
query_posts('child_of='.$thecat);
if (have_posts()) : ในขณะที่ (have_posts()) : the_post();
// วง WP คลาสสิก
สิ้นสุด; endif;
?>
[/php]
#5. ระบุรายการโพสต์ในอนาคต
การให้ผู้อ่านทราบเกี่ยวกับโพสต์ที่จะเกิดขึ้นอาจจุดประกายความสนใจและทำให้พวกเขากลับมาที่บล็อกของคุณเพื่ออ่าน หากฟังดูเป็นความคิดที่ดีสำหรับคุณ ให้ใช้รหัสด้านล่างเพื่อจัดทำรายการบทความสั้น ๆ ที่กำลังจะมีขึ้นในไซต์ WordPress ของคุณ
[php]
<?php query_posts('showposts=10&post_status=future'); ?>
<?php if ( have_posts() ) : ในขณะที่ ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<span class="datetime"><?php the_time('j. F Y'); ?></span></p>
<?php เมื่อสิ้นสุด;
อื่น: ?><p>ไม่มีกำหนดการกิจกรรมในอนาคต</p>
<?php endif; ?>
[/php]
#6. รับโพสต์ที่อัปโหลดในวันที่ระบุ
หากคุณมักประสบปัญหาในการหาโพสต์ในฟีดของคุณ คุณสามารถค้นหาโดยใช้ลูป เป็นไปได้โดยการใส่รหัสต่อไปนี้ที่ทำให้การค้นหาง่ายมาก โดยเฉพาะจะดึงข้อมูลที่โพสต์ระหว่างวันที่คุณระบุตัวเอง
[php]
<?php
ฟังก์ชัน filter_where($where = ”) {
$where .= " AND post_date >= '2012-08-19' AND post_date <= '2012-08-11'";
ส่งคืน $ ที่ไหน;
}
add_filter('posts_where', 'filter_where');
query_posts($query_string);
ในขณะที่ (have_posts()) :
the_post();
ในเนื้อหา();
ในที่สุด;
?>
[/php]
#7. แสดงภาพวนซ้ำ
แกลเลอรีรูปภาพในหน้าเริ่มต้นของเว็บไซต์ WordPress เป็นความคิดที่ดี เนื่องจากคนส่วนใหญ่ชื่นชอบภาพ หากโพสต์ของคุณมีภาพลูกค้าเป้าหมาย โค้ดด้านล่างจะดึงข้อมูลเพื่อแสดงเป็นวง
ใส่รหัสต่อไปนี้ลงในไฟล์ functions.php:
[php]
ฟังก์ชั่น catch_that_image () {
โพสต์ $ ทั่วโลก, $ โพสต์;
$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)){ //กำหนดอิมเมจเริ่มต้น
$first_img = "/images/default.jpg";
}
ส่งคืน $first_img;
}
[/php]
#8. ลบโพสต์โดยอัตโนมัติด้วยการตั้งค่าวันหมดอายุ
สมมติว่าคุณกำลังจัดการแข่งขันเพื่อเพิ่มจำนวนผู้อ่านในบล็อกของคุณ เมื่อการแข่งขันสิ้นสุดลง คุณจะเผยแพร่ผลการแข่งขัน และที่สำคัญที่สุดคือคำตอบ หรือคำใบ้ และเงื่อนงำสำหรับพวกเขา แน่นอนว่าผู้อ่านไม่ควรจะเข้าถึงได้ตลอดไปเพราะคุณอาจจะจัดการแข่งขันใหม่ในอนาคตใช่ไหม
วิธีที่ดีในการลบโพสต์แม้ว่าคุณจะลืมโพสต์ไปแล้ว ก็คือการตั้งเวลาโดยกำหนดวันหมดอายุ ลูปด้านล่างแทนที่อันที่มีอยู่ของคุณและทำอย่างนั้น
อย่าลืมใช้รูปแบบ mm/dd/yyyy 00:00:00 เพื่อแทนที่เวลาหมดอายุ
[php]
<?php
ถ้า (have_posts()) :
ในขณะที่ (have_posts()) : the_post(); ?>
$expirationtime = get_post_custom_values('หมดอายุ');
ถ้า (is_array($expirationtime)) {
$expirestring = ระเบิด($หมดอายุเวลา);
}
$secondsbetween = strtotime($หมดอายุสตริง)-time();
ถ้า ( $secondsbetween > 0) {
// ตัวอย่างเช่น…
the_title();
the_excerpt();
}
ในที่สุด;
เอนดิฟ;
?>
[/php]
#9. แยกความคิดเห็นออกจาก Trackbacks
รายการยอดนิยมในบล็อกของคุณจะถูกเชื่อมโยงจากเว็บไซต์อื่นๆ มากมาย เพื่อให้แน่ใจว่าผู้อ่านสามารถติดตามการอภิปรายในส่วนความคิดเห็นได้อย่างสะดวกสบาย คุณควรแยกความคิดเห็นและการติดตามผล
สิ่งที่คุณต้องทำคือเปิด comments.php แล้วมองหาสิ่งต่อไปนี้:
[php]
foreach ($comments เป็น $comment) : ?>
// ความคิดเห็นจะแสดงที่นี่
จบสิ้น;
[/php]
พบมัน? เยี่ยมมาก ตอนนี้แทนที่ด้วยรหัสใหม่:
[php]
<ul class="commentlist">
<?php //แสดงความเห็นเท่านั้น
foreach ($comments เป็น $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>
<li>//ใส่รหัสความคิดเห็นที่นี่</li>
<?php }
จบสิ้น;
</ul>
<ul>
<?php //แสดง trackbacks เท่านั้น
foreach ($comments เป็น $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php }
จบสิ้น;
</ul>
[/php]
#10. แสดงกระทู้ที่เกี่ยวข้อง

การแสดงบทความที่เกี่ยวข้องเป็นวิธีที่ดีในการเพิ่มจำนวนผู้อ่าน สิ่งที่คุณต้องทำคือวางโค้ดพิเศษลงในไฟล์ single.php
[php]
<?php
$backup = $โพสต์; // สำรองข้อมูลวัตถุปัจจุบัน
$tags = ks29so_get_post_tags($post->ID);
$ tagIDs = อาร์เรย์ ();
ถ้า ($แท็ก) {
$tagcount = นับ($tags);
สำหรับ ($i = 0; $i < $tagcount; $i++) {
$tagIDs[$i] = $tags[$i]->term_id; $tagIDs[$i] = $tags[$i]->term_id;
}
$args=array(
'tag__in' => $tagIDs,
'post__not_in' => array($post->ID),
'โชว์โพสต์'=>5,
'caller_get_posts'=>1
);
$my_query = ใหม่ 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 เมื่อสิ้นสุด;
} อื่น ๆ { ?>
<h2>ไม่พบโพสต์ที่เกี่ยวข้อง!</h2>
<?php }
}
$โพสต์ = $สำรอง; //คัดลอกกลับไป
ks29so_reset_query(); // เพื่อใช้แบบสอบถามเดิมอีกครั้ง
?>
[/php]
#11. กำหนดวิธีการแสดงโพสต์เฉพาะบนโฮมเพจ
ธีม WordPress ส่วนใหญ่แสดงโพสต์ทั้งหมดในลักษณะเดียวกันในหน้าเริ่มต้น อย่างไรก็ตาม หากคุณไม่ชอบมัน คุณสามารถเปลี่ยนมันและกำหนดได้ว่าอันไหนควรแสดงทั้งหมด และส่วนใดที่ตัดตอนมาเท่านั้นก็เพียงพอ
ค้นหาไฟล์ index.php และค้นหาลูปที่นั่น รหัสต่อไปนี้แทนที่:
[php]
<?php ถ้า (have_posts()) :
ในขณะที่ (have_posts()) : the_post();
$customField = get_post_custom_values("เต็ม");
ถ้า (isset($customField[0])) {
//กำหนดฟิลด์เอง แสดงโพสต์แบบเต็ม
the_title();
ในเนื้อหา();
} อื่น {
// ไม่มีชุดฟิลด์ที่กำหนดเอง ให้แสดงข้อความที่ตัดตอนมา
the_title();
the_excerpt();
ในที่สุด;
เอนดิฟ;
?>
[/php]
#12. แสดงเนื้อหาส่งเสริมการขายเหนือโพสต์ในหน้าแรก
ใส่รหัสต่อไปนี้ในไฟล์ index.php เพื่อเพิ่มเนื้อหาส่งเสริมการขาย
[php]
<div class="content-loop">
[/php]
#13. แสดงรายการผู้เขียนบล็อกทั้งหมดในเพจ
เพียงวางโค้ดนี้ที่ใดก็ได้ในลูปเพื่อแสดงรายชื่อผู้เขียนทั้งหมด
[php]
<ul>
<?php ks29so_list_authors('exclude_admin=0&optioncount=1&show_fullname=1&hide_empty=1'); ?>
</ul>
[/php]
#14. ใช้ฟิลด์กำหนดเองเพื่อแสดงชื่อผู้เขียนรับเชิญ
หากคุณใช้ผู้เขียนรับเชิญในบล็อกของคุณ เป็นไปได้มากที่คุณไม่ได้สร้างหน้าแยกต่างหากสำหรับพวกเขา ทำไมไม่เพียงแค่แสดงชื่อของพวกเขาแทน?
ใส่รหัสนี้ใน single.php เพื่อทำ:
[php]
<?php $author = get_post_meta($post->ID, "guest-author", จริง);
ถ้า ($ ผู้แต่ง != "") {
echo $ ผู้เขียน;
} อื่น {
ผู้เขียน();
} ?>
[/php]
#15. ทำให้รูปภาพเป็นข้อกำหนดบังคับสำหรับการเผยแพร่
โพสต์ที่มีรูปภาพมักจะมีการดูมากกว่าโพสต์ที่ไม่มีรูปภาพ เปิดไฟล์ functions.php ของคุณเพื่อกำหนดให้เป็นไฟล์บังคับ
[php]
add_action('save_post', 'wpds_check_thumbnail');
add_action('admin_notices', 'wpds_thumbnail_error');
ฟังก์ชั่น wpds_check_thumbnail ($ post_id) {
// เปลี่ยนเป็นประเภทโพสต์ที่กำหนดเองใดก็ได้
if( get_post_type($post_id) != 'โพสต์' )
กลับ;
if ( ! has_post_thumbnail( $post_id ) ) {
// ตั้งค่าชั่วคราวเพื่อแสดงข้อความผู้ดูแลระบบให้ผู้ใช้เห็น
set_transient( "has_post_thumbnail", "ไม่" );
// ปลดฟังก์ชั่นนี้เพื่อไม่ให้วนซ้ำ
remove_action('save_post', 'wpds_check_thumbnail');
// อัปเดตโพสต์ตั้งค่าเป็นร่าง
ks29so_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
add_action('save_post', 'wpds_check_thumbnail');
} อื่น {
delete_transient( "has_post_thumbnail" );
}
}
ฟังก์ชั่น wpds_thumbnail_error () {
// ตรวจสอบว่ามีการตั้งค่าชั่วคราวและแสดงข้อความแสดงข้อผิดพลาด
if (get_transient( "has_post_thumbnail" ) == "ไม่" ) {
echo "<div id='message' class='error'><p><strong>คุณต้องเพิ่มรูปภาพเด่นก่อนที่จะเผยแพร่ อย่าตกใจ โพสต์ของคุณได้รับการบันทึกแล้ว</strong></p>< /div>";
delete_transient( "has_post_thumbnail" );
}
}
[/php]
#16. เปลี่ยนเส้นทางไปยังหน้าเฉพาะหลังจากการลงทะเบียน
เปิดไฟล์ functions.php และเพิ่มโค้ดด้านล่าง
[php]
ฟังก์ชัน __my_registration_redirect(){
กลับ home_url( '/my-page' );
}
add_filter( 'registration_redirect', '__my_registration_redirect' );
#17. แทรกโฆษณาในโพสต์
ใช้โค้ดนี้ในไฟล์ functions.php ของคุณเพื่อรวมโฆษณาในโพสต์ในทุกที่ที่คุณต้องการ
สับ
ฟังก์ชัน googleadsense($เนื้อหา){
$adsensecode = 'รหัสโฆษณาของคุณที่นี่';
$pattern = '<!-googlead->';
$content = str_replace($รูปแบบ, $adsensecode, $เนื้อหา);
ส่งคืนเนื้อหา $;
}
add_filter('the_content', 'googleadsense');
[/php]
#18. ใช้รหัสย่อเพื่อแสดงโฆษณา
เลือกตำแหน่งที่คุณต้องการแทรกโฆษณาและวางโค้ดต่อไปนี้ใน functions.php
[php]
ฟังก์ชั่น showads () {
กลับ '
รหัสโฆษณาที่นี่
';
}
add_shortcode('adsense', 'showads');
[/php]
#19. แสดงกระทู้ที่มีความคิดเห็นมากที่สุด
เพิ่มรหัสต่อไปนี้ในไฟล์ functions.php เพื่อแสดงโพสต์ที่มีความคิดเห็นมากที่สุด
[php]
ฟังก์ชั่น wpb_most_commented_posts () {
ob_start();?>
<ul class="most-commented">
<?php
$query = ใหม่
WP_Query('orderby=comment_count&posts_per_page=10');
ในขณะที่($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('ไม่มีความคิดเห็น;', '1 ความคิดเห็น', '% ความคิดเห็น'); ?></span></li>
<?php เมื่อสิ้นสุด; ?>
</ul>
<?php// ปิดการบัฟเฟอร์เอาต์พุต
$output = ob_get_clean();
ส่งคืน $output; }
add_shortcode('wpb_most_commented', 'wpb_most_commented_posts');
add_filter('widget_text', 'do_shortcode');
[/php]
#20. เปิดใช้งานการสนับสนุนรูปภาพเด่น
ธีม WordPress ส่วนใหญ่รองรับรูปภาพเด่น แต่ถ้าคุณไม่รองรับ คุณสามารถเปิดใช้งานได้โดยแทรกสิ่งนี้ลงในไฟล์ functions.php
[php]
add_theme_support( 'โพสต์ภาพขนาดย่อ' );
[/php]
#21. แสดงความเห็นล่าสุด
ใช้รหัสนี้ที่ใดก็ได้ในลูปเพื่อแสดงความคิดเห็นล่าสุดห้ารายการ
[php]
<?php
$query = "เลือก * จาก $wpdb->comments โดยที่ comment_approved= '1'
เรียงตาม comment_date DESC LIMIT 0,5";
$ความคิดเห็น = $wpdb->get_results($query);
ถ้า (ความคิดเห็น) {
เสียงสะท้อน '<ul>';
foreach ($ แสดงความคิดเห็นเป็น $ ความคิดเห็น) {
$url = '<a href="'. get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID .'" title="'.$comment->comment_author .' | '.get_the_title($comment->comment_post_ID).'">';
ก้อง '<li>';
echo '<div class="img">';
ก้อง $url;
echo get_avatar( $comment->comment_author_email, $img_w);
ก้อง '</a></div>';
echo '<div class="txt">พาร์: ';
ก้อง $url;
echo $comment->comment_author;
ก้อง '</a></div>';
ก้อง '</li>';
}
ก้อง '</ul>';
}
?>
[/php]
พร้อมที่จะแฮ็ค?
ใช้การปรับแต่งที่มีประโยชน์เหล่านี้และปรับปรุงฟังก์ชันการทำงานของไซต์ WordPress ของคุณ!