Phân trang bài viết trong WordPress không dùng plugin

Trong số những bài viết của bạn, sẽ có những bài viết ngắn và cũng có những bài viết rất dài. Có thể đây là một việc làm bắt buộc mà bạn không thể thu gọn nội dung lại được. Và chính những điều này cũng sẽ đem lại cho người đọc, trước tiên là tốc độ tải trang bị chậm lại đã, sau đó là một tâm lí chán ngán. Giải pháp hữu hiệu để giải quyết vấn đề này chính là phân trang bài viết. Lợi ích của việc phân trang bài viết có thể kể đến như:

  1. Giảm thiểu thời gian tải trang
  2. Tăng lượt view cho web, giảm tỉ lệ thoát (bounce rate)
  3. Nếu bạn đang kiếm tiền bằng các loại quảng cáo CPM (như Google Adsense) thì bạn sẽ được gấp nhiều lần thu nhập
  4. Tạo thiện cảm cho người đọc khi một bài viết không quá dài
  5. Bạn có thể yên tâm viết bài một cách chuyên sâu mà không cần lo lắng để phần nào, bớt phần nào nữa.

Chia trang bài viết WordPress

Và cũng thật may mắn, việc phân trang cho bài viết đã được WordPress tối ưu rất đơn giản, việc của bạn cần phải làm là chèn thẻ sau vào trước đoạn mà bạn muốn ngắt trang:

<!--nextpage-->

Lưu ý các bạn phải chèn ở chế độ soạn thảo Text chứ không phải Visual nhé.

Và kết quả của bạn sẽ được:

Mỗi một lần bạn đặt thẻ nextpage thì WordPress sẽ tự tạo ra một trang mới tức là đồng nghĩa với việc có bao nhiêu thẻ nextpage thì bài viết được chia thành bấy nhiêu trang.

Tự động phân trang trong WordPress

Bên trên là cách phân trang một cách thủ công, giờ tôi sẽ hướng dẫn các bạn làm thế nào để tự động phân trang khi đạt tới số lượng ký tự đã đặt trước.

Thủ thuật này cũng khá đơn giản, bạn cần login vào host hoặc sử dụng một phần mềm FTP để tìm file wp-includes/query.php và thay thế đoạn code:

$pages = array( $post->post_content );
$multipage = 0;

thành:

$max_lex = 6897; // Số ký tự trên một trang
    $string = $content;
        $strrpos = mb_strrpos($content," ");
        $current = 0;
        $pagesPost = ceil($strrpos/$max_lex);
        $pagePost = 1;
        if ($strrpos &gt; $max_lex) {
            $content = '';
            while ($current &lt; $strrpos) {
            $stringtt = mb_substr($string, $current, $max_lex);
            $numStr = mb_strrpos($stringtt," ");
            if($pagePost&lt;$pagesPost)  $content .=  $stringtt."<!--nextpage-->";  else $content .= $stringtt;
            $current = $numStr + $current;
            $pagePost++;
            }
        } else {
        $content = $string;
    }
        if ( $page &gt; 1 ) $more = 1;
        $multipage = 1;
        $content = str_replace("n<!--nextpage-->n", '<!--nextpage-->', $content);
        $content = str_replace("n<!--nextpage-->", '<!--nextpage-->', $content);
        $content = str_replace("<!--nextpage-->n", '<!--nextpage-->', $content);
        $pages = explode('<!--nextpage-->', $content);
        $numpages = count($pages);

Và lưu lại nữa là OK.

Ngoài cách sử dụng code bên trên thì các bạn cũng có thể sử dụng plugin WP-PageNavi đây là một plugin khá chuyên nghiệp, nó sẽ giúp bạn tối ưu sâu hơn đó. Với thủ thuật nhỏ này hi vọng sẽ giúp ích được các bạn. Chúc các bạn thành công và đừng quên là ủng hộ ChiaseWP nhé.

Bài viết này tự động lấy từ nguồn chiasewp.com, nếu các bạn muốn xem bài viết gốc, hãy truy cập vào chiasewp.com để được hỗ trợ từ tác giả bài viết nhé

Trân trọng!

Leave a Reply

avatar
  Subscribe  
Notify of