prevnext limitless

add_action('wp_footer', 'insert_prev_next_buttons_above_title_js');


function insert_prev_next_buttons_above_title_js() {

    // শুধুমাত্র সিঙ্গেল পোস্টের ক্ষেত্রে কাজ করবে

    if (is_singular('post')) {

        

        $prev_post = get_previous_post();

        $next_post = get_next_post();

        

        // Previous বাটন লুপ করার জন্য: যদি আগের কোনো পোস্ট না থাকে (আপনি একদম প্রথম পোস্টে আছেন), তাহলে একদম সর্বশেষ (নতুন) পোস্টটি আনবে।

        if (empty($prev_post)) {

            $latest_posts = get_posts(array(

                'posts_per_page' => 1,

                'post_type'      => 'post',

                'post_status'    => 'publish'

            ));

            if (!empty($latest_posts)) {

                $prev_post = $latest_posts[0];

            }

        }


        // Next বাটন লুপ করার জন্য: যদি পরের কোনো পোস্ট না থাকে (আপনি একদম শেষ পোস্টে আছেন), তাহলে একদম প্রথম (পুরোনো) পোস্টটি আনবে।

        if (empty($next_post)) {

            $oldest_posts = get_posts(array(

                'posts_per_page' => 1,

                'post_type'      => 'post',

                'post_status'    => 'publish',

                'order'          => 'ASC'

            ));

            if (!empty($oldest_posts)) {

                $next_post = $oldest_posts[0];

            }

        }


        // যদি আপনার সাইটে সর্বমোট মাত্র ১টি পোস্ট থাকে, তাহলে বাটনগুলো বর্তমান পোস্টেই লুপ হতে থাকবে। সেটি রোধ করার জন্য এই চেক:

        if (($prev_post && $prev_post->ID == get_the_ID()) && ($next_post && $next_post->ID == get_the_ID())) {

            return;

        }


        // বাটনগুলোর HTML তৈরি করা হচ্ছে

        $buttons = '<div class="post-navigation-buttons" style="margin-bottom: 20px; display: flex; gap: 15px;">';

        

        if (!empty($prev_post)) {

            $buttons .= '<a href="' . esc_url(get_permalink($prev_post->ID)) . '" class="nav-btn prev-btn" style="padding: 8px 16px; background-color: #0073aa; color: #fff; text-decoration: none; border-radius: 4px; font-weight: bold;">« Previous</a>';

        }

        

        if (!empty($next_post)) {

            $buttons .= '<a href="' . esc_url(get_permalink($next_post->ID)) . '" class="nav-btn next-btn" style="padding: 8px 16px; background-color: #0073aa; color: #fff; text-decoration: none; border-radius: 4px; font-weight: bold;">Next »</a>';

        }

        

        $buttons .= '</div>';

        

        // জাভাস্ক্রিপ্টের মাধ্যমে বাটনগুলোকে টাইটেলের উপরে ইনজেক্ট করা হচ্ছে

        ?>

        <script type="text/javascript">

            document.addEventListener("DOMContentLoaded", function() {

                var buttonsHtml = '<?php echo $buttons; ?>';

                

                // থিমের মেইন টাইটেল (h1) খুঁজে বের করা হচ্ছে

                var postTitle = document.querySelector('h1.entry-title, h1.post-title, article h1, .single-post h1');

                

                if (postTitle) {

                    // টাইটেলের ঠিক আগে বাটনগুলো বসিয়ে দেওয়া হচ্ছে

                    postTitle.insertAdjacentHTML('beforebegin', buttonsHtml);

                }

            });

        </script>

        <?php

    }

}

No comments:

Post a Comment

Pages