• July 4, 2021

    ใช้คำค้น
    “get_previous_post(); and $current_post;”
    “display next post from current post”

    เมื่อกดบทความใดๆ มันจะแสดงโพสท์ถัดไปอีก 5 โพสท์ ด้วย
    (เอามาทำเป็นหน้าปัจจุบันและ อีก 1 โพสท์ถัดไปได้ โดยใส่เปลี่ยนตัวเลขจาก 5 เป็น 1)
    ดังนั้นวิธีนี้จะใช้ได้ กับ การกดโพสท์ใดๆได้ โดยใส่แทน code ใน single.php
    หาก code ใน single.php มี code random อยุ่ด้วย จะต้องเอาออกไป เพราะมันจะถ่ายทอดลักษณะมาที่โค๊ดนี้ทำให้ใช้งานไม่ได้

    ref. https://stackoverflow.com/questions/18141818/get-next-and-previous-5-posts-from-the-current-post
    อื่นๆ(ยังไม่ทดสอบ)
    https://stackoverflow.com/questions/25361996/wordpress-show-next-3-x-number-adjacent-custom-posts-from-existing (น่าจะใช้ได้)
    https://wordpress.stackexchange.com/questions/71813/show-multiple-next-and-previous-posts
    https://stackoverflow.com/questions/6324421/getting-next-previous-post-id-using-current-post-id-in-wordpress
    https://www.forumming.com/question/13544/get-next-prev-3-posts-in-relation-to-current-post
    https://wordpress.stackexchange.com/questions/14502/get-next-prev-3-posts-in-relation-to-current-post
    https://stackoverflow.com/questions/40095699/wordpress-wp-query-get-next-post-with-same-category
    https://stackoverflow.com/questions/40095699/wordpress-wp-query-get-next-post-with-same-category

    <?php global $post;
    $current_post = $post; // remember the current post
    
          for($i = 1; $i <= 5; $i++):
            $post = get_previous_post(); // this uses $post->ID
          setup_postdata($post);
    
              // do your stuff here       
         the_title();
        the_content();
    
           endfor;
            $post = $current_post; 
            ?>
     for new 5 post use get_next_post() instead of get_previous_post()

    วิธีด้านล่างนี้ ใช้กับ การกดโพสท์ใดๆ ไม่ได้ ถ้าใส่ ใน single.php มันจะดึงโพสท์ล่าสุดมาสองโพสท์
    ถ้าจะใช้ได้ใกล้เคียง ต้องทำ page template มาต่างหาก แล้ว ก็เข้าไปสร้างโพสท์ ว่าง ชื่ออะไรก็ได้ เช่น 2post โดยเลือก page template ตามที่ตั้งไว้

    สร้างไฟล์ page-blog.php อัพเข้าไปใน theme

    <?php 
    /*
    	Template Name: Blog
    */
    ?>
    
    <?php get_header(); ?>
    <!--<div class="row row-cols-1 row-cols-sm-2 row-cols-md-3">-->
    <div class="row row-cols-1 row-cols-sm-2">
    <?php // Display blog posts on any page @ https://m0n.co/l
    		$temp = $wp_query; $wp_query= null;
    		$wp_query = new WP_Query(); $wp_query->query('posts_per_page=2' . '&paged='.$paged);
    		while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    						
    <div class="col mb-4">
    <div class="card" style="height: 500px;overflow:scroll;padding: 10px;">					
    		<h2><a href="<?php the_permalink(); ?>" title="Read more"><?php the_title(); ?></a></h2>
    		<?php the_excerpt(); ?>
    		<hr>
    <?php the_content();?>		
    </div></div>
    		<?php endwhile; ?>
    		<?php if ($paged > 1) { ?>
    </div>		
    		<div style="text-align:center;width:100%"><?php previous_posts_link('« ใหม่กว่า '); ?> || <?php next_posts_link('เก่ากว่า  »'); ?></div>
    		<?php } else { ?><div class="prev"><?php next_posts_link('เก่ากว่า >>'); ?></div>
    		<?php } ?>
    		<?php wp_reset_postdata(); ?>																      
    
    <?php get_footer(); ?>

    เวลาเรียกใช้ ก็กดลิ้ง xxx.com/2post
    มันจะแสดงหน้าล่าสุด 2 หน้า แล้วมีลิ้งด้านล่างกดต่อไปเรื่อยๆ โดยสังเกตุว่า url จะเป็น
    https://www.insurancethai.net/2post/page/2/
    https://www.insurancethai.net/2post/page/3/
    https://www.insurancethai.net/2post/page/4/
    ไปเรื่อยๆ

    ต่างกับ วิธีแรก ที่ตรงตามต้องการคือ เมื่อกดโพสท์ใดๆ มันจะแสดงpostถัดไป ด้วย ตามจำนวนที่ตั้งไว้ ดังนั้น url จะเป็น url ของโพสท์นั้นๆเลย เพียงแต่มี post อื่นๆแสดงมาด้วยนั่นเอง

    อื่นๆ
    This will get you next 10 posts on single post template.
    (next-10-posts-data-of-currently-viewing-post-in-blog-page/)

    <?php
    
        global $post;
        $current_post = $post;
    
        for ( $i = 1; $i <= 10; $i++ ) {
            $post = get_previous_post(); // this uses $post->ID
            setup_postdata($post);
    
            get_template_part( 'content', get_post_format() );
    
        }
    
        $post = $current_post; // restore
    
    ?>

    Show next x number of posts depending on current post in WordPress

    <ul>
        <?php
            global $post;
            $current_post = $post;
        $site_url = get_site_url();
            for($i = 1; $i <= 3; $i++):
            $post = get_previous_post();
            setup_postdata($post);
            // add your own if condition
            if(condition) {
            echo '<li>';
            echo '<a class="title" href="' . get_permalink() . '" title="'  . get_the_title() . '">'  . get_the_title() . '</a>';
            echo '<a class="link" href="' . get_permalink() . '" title="'  . get_the_title() . '"></a>';
            echo '</li>';
            }
            else
            {
            echo '<li>';
            echo '<a class="eg-title" href="'. $site_url .'/your-landing-page" title="">Show all</a>';
            echo '</li>';
            // only show once with break
            break;
            }
            endfor;
            $post = $current_post; 
        ?>
    </ul>


เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories


Uncategorized