Hiển thị bài viết vừa xem cho wordpress không dùng plugin

Hiển thị bài viết vừa xem cho wordpress là tình năng rất hay, nó sẽ hiển thị bài viết bạn đã xem để đến khi bạn muốn xem lại bài viết đấy nó sẽ hiển thị link bài viết để cho bạn nhanh chóng truy cập bài viết đó. Trong bài viết này mình sẽ chia sẻ bạn cách thực hiện nó nhé.

Hiển thị bài viết vừa xem cho wordpress không dùng plugin

Hiển thị bài viết vừa xem cho wordpress không dùng plugin

Để triển khai chức năng hiển thị bài viết vừa xem cho wordpress không dùng plugin, bạn có thể sử dụng cookie và mã tùy chỉnh. Dưới đây là phác thảo chung về cách bạn có thể tiếp cận nó.

Có thể bạn quan tâm:

1] Chèn vào functions.php

Hãy thêm mã sau để tạo cookie và cập nhật mã đó với ID của các bài đăng được xem gần đây

function set_recently_viewed_cookie() {
    if (is_singular('post')) { // Adjust post type if necessary
        $post_id = get_the_ID();
        $recently_viewed = isset($_COOKIE['recently_viewed']) ? $_COOKIE['recently_viewed'] : '';

        // Convert the cookie string to an array
        $recently_viewed = explode(',', $recently_viewed);

        // Remove the post ID if it already exists in the array
        $recently_viewed = array_diff($recently_viewed, [$post_id]);

        // Add the post ID to the beginning of the array
        array_unshift($recently_viewed, $post_id);

        // Limit the array to a certain number of posts (e.g., 5)
        $recently_viewed = array_slice($recently_viewed, 0, 5);

        // Convert the array back to a string
        $recently_viewed = implode(',', $recently_viewed);

        // Set the cookie with a 7-day expiration
        setcookie('recently_viewed', $recently_viewed, time() + (7 * 24 * 60 * 60), '/');
    }
}
add_action('template_redirect', 'set_recently_viewed_cookie');

Bạn để ý đoạn setcookie(‘recently_viewed’, $recently_viewed, time() + (7 * 24 * 60 * 60) bạn có thể thay thế thời gian lưu cookie cho phù hợp với bạn.

Tiếp theo, tạo một hàm để truy xuất ID bài đăng đã xem gần đây từ cookie và hiển thị chúng:


function display_recently_viewed_posts() {
    if (isset($_COOKIE['recently_viewed'])) {
        $recently_viewed = $_COOKIE['recently_viewed'];
        $recently_viewed = explode(',', $recently_viewed);

        $args = array(
            'post_type' => 'post',
            'post__in' => $recently_viewed,
            'orderby' => 'post__in',
        );

        $recent_posts = new WP_Query($args);
        echo "<h2 class='recently-viewed'>Truyện bạn vừa nghe</h2>";
        echo "<ul>";

        if ($recent_posts->have_posts()) {
            while ($recent_posts->have_posts()) {
                $recent_posts->the_post();
                // Display the post title, excerpt, or any other desired content
                echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
            }
            wp_reset_postdata();
        }

        echo "</ul>";
    }
}

2] Chèn Shortcode

Cuối cùng, thêm đoạn mã sau vào nơi bạn muốn hiển thị các bài đăng được xem gần đây

<?php display_recently_viewed_posts(); ?>

Kết luận

Trên đây là cách hiển thị bài viết vừa xem cho wordpress không dùng plugin bạn có thể tham khảo. Hy vọng với hướng dẫn mà Blog thủ thuật máy tính f4vnn đã chia sẻ sẽ có ích với bạn, chúc bạn thành.

5/5 - (3 bình chọn)