Như chúng ta đã biết khi muốn phân trang trong bài viết WordPress thì phải sử dụng đoạn thẻ <!--nextpage-->chèn vào nơi muốn cắt sang trang mới, nhưng nếu làm 1 trang web truyện rất dài, thì việc chèn từng đoạn như thế là không mấy vui vẻ, vậy nên việc tự động phân trang trong bài viết cho WordPress là hoàn toàn cần thiết
Trên mạng có rất nhiều bài hướng dẫn để giải quyết vấn đề này, nhưng mình xin chia sẻ với các bạn một bài hướng dẫn mình đã đọc khá lâu và vừa rồi khi setup một site WordPress mình mới dùng đến, code tự động phân trang bài viết khá hay và ngắn gọn của Quyetdaik
Mặc định 500 kí tự / trang – sửa lại theo ý bạn:
Sau đó tìm đoạn này $content = $post->post_content; (nó ở ngay trên thui, dưới cùng của file query.php ấy:
Sửa :
Trên mạng có rất nhiều bài hướng dẫn để giải quyết vấn đề này, nhưng mình xin chia sẻ với các bạn một bài hướng dẫn mình đã đọc khá lâu và vừa rồi khi setup một site WordPress mình mới dùng đến, code tự động phân trang bài viết khá hay và ngắn gọn của Quyetdaik
Cách tự động phân trang bài viết WordPress
Chèn đoạn code này vào cuối cùng của file wp-includes/query.php (hoặc chỗ nào tùy bạn):Mặc định 500 kí tự / trang – sửa lại theo ý bạn:
// Phân trang bài viết dài bởi Quyetdaik
function wapvn_page_content($content) {
$max_str = 5000; // Số ký tự trên trang
$max_page = ceil(mb_strlen($content) / $max_str);
if ($max_page > 1) {
$content = str_replace(‘<!–nextpage–>’, ‘ ‘, $content);
$tmp_text = array();
for ($i = 1; $i <= $max_page; $i++) {
$start_pos = $i == 1 ? 0 : $i * $max_str – $max_str;
$subtext = mb_substr($content, $start_pos, ($max_str + 150));
if ($i == 1) {
$int_start = 0;
} else {
if (($pos1 = mb_strpos($subtext, ‘ ‘)) === false) $pos1 = 150;
$int_start = $pos1;
}
if ($i == $max_page) {
$int_lenght = $max_str;
} else {
$tmp = mb_substr($subtext, $max_str, 150);
if (($pos2 = mb_strpos($tmp, ‘ ‘)) === false) $pos2 = 150;
$int_lenght = $max_str + $pos2 – $int_start;
}
$tmp_text[] = mb_substr($subtext, $int_start, $int_lenght);
}
return implode(‘<!–nextpage–>’, $tmp_text);
}
return $content;
}
Sau đó tìm đoạn này $content = $post->post_content; (nó ở ngay trên thui, dưới cùng của file query.php ấy:
Sửa :
$content = $post->post_content;Thành :
$content = wapvn_page_content($post->post_content);Lưu lại là xong thôi :))
Kết luận
Như vậy ở trên mình đã chia sẻ với các bạn cách tự động phân trang cực đơn giản cho WordPress, hy vọng với bài viết này sẽ giúp ích được cho những ai đang cần đến nó.Nguồn : Blog Phan Hùng
0 comments:
Post a Comment