
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 :))
0 comments