Viết các đoạn trích trong PHP hoặc WordPress: Kỹ thuật đếm từ, câu và đoạn
Tạo đoạn trích trong PHP là nhiệm vụ chung trong quản lý nội dung và phát triển website. Đoạn trích là phiên bản rút gọn của một đoạn nội dung dài hơn, thường được sử dụng để cung cấp bản xem trước hoặc tóm tắt. Các nhà phát triển PHP có thể cần tạo các đoạn trích dựa trên số lượng từ, câu hoặc đoạn văn. Bài viết này khám phá các phương pháp để đạt được điều này, cùng với các phương pháp hay nhất và cách xử lý các trường hợp trong đó số lượng vượt quá độ dài nội dung.
Trích đoạn từ Word Count
Tạo một đoạn trích theo số từ bao gồm việc cắt bớt nội dung sau một số từ nhất định.
function excerptByWordCount($content, $wordCount) {
$words = explode(' ', $content);
if (count($words) > $wordCount) {
$words = array_slice($words, 0, $wordCount);
$content = implode(' ', $words);
}
return $content;
}
Cách sử dụng:
// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50);
Các biện pháp thực hành tốt nhất và xử lý việc đếm quá mức:
- Kiểm tra số từ: Trước khi cắt bớt, hãy kiểm tra xem số từ của nội dung gốc có vượt quá độ dài đoạn trích mong muốn hay không. Nếu không thì trả lại nội dung gốc.
- Tránh ngắt lời: Đảm bảo từ cuối cùng trong đoạn trích là đầy đủ để duy trì khả năng đọc.
- Thêm dấu chấm lửng: Tùy chọn, thêm dấu chấm lửng (
...
) ở cuối nếu nội dung bị cắt bớt.
Trích theo số lượng câu
Tạo đoạn trích theo số câu liên quan đến việc giữ lại một số câu nhất định trong nội dung.
function excerptBySentenceCount($content, $sentenceCount) {
$sentences = explode('.', $content);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode('. ', $sentences) . '.';
}
return $content;
}
Sử dụng
// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3);
Để cập nhật excerptBySentenceCount
bao gồm các câu có bất kỳ dấu câu nào ở cuối (không chỉ dấu chấm), bạn có thể sửa đổi hàm để phân chia nội dung theo một biểu thức chính quy khớp với bất kỳ dấu câu kết thúc câu điển hình nào, chẳng hạn như dấu chấm, dấu chấm than hoặc dấu chấm hỏi. Đây là cách bạn có thể làm điều đó trong PHP:
function excerptBySentenceCount($content, $sentenceCount) {
// Use a regular expression to split the content by sentence-ending punctuation
$sentences = preg_split('/(?<=[.!?])\s+/', $content, -1, PREG_SPLIT_NO_EMPTY);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode(' ', $sentences);
// Check the last character to ensure it ends with punctuation
if (!preg_match('/[.!?]$/', $content)) {
$content .= '.';
}
}
return $content;
}
Chức năng này sử dụng preg_split
với một biểu thức chính quy (biểu thức chính quy) /(?<=[.!?])\s+/
phân chia văn bản tại khoảng trắng (\s+
) theo sau dấu chấm, dấu chấm than hoặc dấu chấm hỏi ([.!?]
). Các (?<=...)
là một xác nhận nhìn phía sau tích cực nhằm kiểm tra sự hiện diện của dấu câu kết thúc câu mà không đưa nó vào phần tách. Các PREG_SPLIT_NO_EMPTY
cờ đảm bảo rằng chỉ những phần không trống mới được trả về.
Cuối cùng, hàm kiểm tra xem ký tự cuối cùng của nội dung kết quả có phải là dấu câu kết thúc câu hay không. Nếu không, nó sẽ thêm một dấu chấm để duy trì dấu câu thích hợp ở cuối đoạn trích.
Các biện pháp thực hành tốt nhất và xử lý việc đếm quá mức:
- Phát hiện câu thích hợp: Dùng dấu chấm, theo sau là dấu cách để chia câu. Điều này tránh việc chia thành các giai đoạn được sử dụng trong chữ viết tắt.
- Kiểm tra số lượng câu: Tương tự như đếm từ, hãy xác minh xem số câu của nội dung gốc có đủ hay không.
- Duy trì dấu câu: Đảm bảo đoạn trích kết thúc bằng dấu câu thích hợp, thường là dấu chấm.
Trích đoạn theo số đoạn
Tạo đoạn trích theo số đoạn bao gồm việc cắt bớt nội dung sau một số đoạn nhất định.
function excerptByParagraphCount($content, $paragraphCount) {
$paragraphs = explode("\n", $content);
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode("\n", $paragraphs);
}
return $content;
}
Cách sử dụng:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2);
Các biện pháp thực hành tốt nhất và xử lý việc đếm quá mức:
- Sử dụng dòng mới cho đoạn văn: Các đoạn văn thường được phân tách bằng dòng mới (
\n
). Đảm bảo nội dung của bạn tuân theo định dạng này. - Kiểm tra số đoạn: Xác thực xem số lượng đoạn nội dung có đủ cho đoạn trích hay không.
- Tôn trọng cấu trúc nội dung: Duy trì cấu trúc của các đoạn văn trong đoạn trích để bảo toàn tính toàn vẹn của nội dung.
Trích đoạn theo số lượng đoạn HTML
Khi xử lý nội dung HTML, bạn sẽ muốn trích xuất các đoạn trích dựa trên <p>
thẻ để duy trì cấu trúc và định dạng của nội dung gốc.
function excerptByHtmlParagraphCount($content, $paragraphCount) {
preg_match_all('/<p[^>]*>.*?<\/p>/', $content, $paragraphs);
$paragraphs = $paragraphs[0];
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode(' ', $paragraphs);
}
return $content;
}
Cách sử dụng:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2);
Các biện pháp thực hành tốt nhất và xử lý việc đếm quá mức:
- Biểu thức chính quy để khớp thẻ: Sử dụng
preg_match_all
với một biểu thức chính quy để phù hợp<p>
thẻ. Cách tiếp cận này đảm bảo rằng cấu trúc và thuộc tính của thẻ đoạn văn được giữ nguyên. - Tôn trọng cấu trúc HTML: Đảm bảo rằng đoạn trích duy trì cấu trúc HTML. Tránh làm hỏng thẻ, điều này có thể dẫn đến sự cố hiển thị.
- Kiểm tra số đoạn: Giống như văn bản thuần túy, hãy xác minh xem số đoạn văn của nội dung gốc có đủ cho đoạn trích hay không.
- Xử lý các thẻ lồng nhau: Hãy nhớ rằng các đoạn văn có thể chứa các thành phần HTML khác như liên kết hoặc nhịp. Đảm bảo tài khoản biểu thức chính quy của bạn dành cho các thẻ lồng nhau trong các đoạn văn.
Tạo đoạn trích dựa trên số đoạn HTML trong PHP là một nhiệm vụ nâng cao hơn so với việc xử lý văn bản thuần túy. Điều cần thiết là phải sử dụng các biểu thức chính quy một cách cẩn thận để duy trì tính toàn vẹn của cấu trúc HTML. Phương pháp này đặc biệt phù hợp với các ứng dụng web nơi nội dung cần được hiển thị với định dạng ban đầu. Như mọi khi, hãy xác thực độ dài của nội dung gốc và xem xét trải nghiệm người dùng khi trình bày các đoạn trích.
Có, WordPress có bộ chức năng và tính năng riêng hỗ trợ việc tạo đoạn trích, điều này có thể đơn giản hóa đáng kể quy trình so với việc xử lý thủ công các đoạn trích trong PHP. Dưới đây là tổng quan về các chức năng chính của WordPress liên quan đến đoạn trích:
Chức năng trích dẫn trong WordPress
WordPress API cung cấp một hệ thống mạnh mẽ để xử lý các đoạn trích, khiến việc triển khai thủ công các hàm PHP trở nên không cần thiết đối với hầu hết các trường hợp sử dụng thông thường. WordPress cung cấp một cách thân thiện với người dùng để quản lý tóm tắt bài đăng, cho dù đó là tùy chỉnh độ dài, thay đổi đọc thêm văn bản hoặc sử dụng thẻ mẫu để hiển thị đoạn trích.
the_excerpt()
Thẻ mẫu WordPress này tự động in một đoạn trích cho bài viết. Nó thường được sử dụng trong các chủ đề để hiển thị tóm tắt bài đăng trên các trang lưu trữ.
- Cách sử dụng: Nơi
the_excerpt()
trong The Loop trong tệp chủ đề của bạn nơi bạn muốn đoạn trích xuất hiện. - Hành vi: Theo mặc định, nó hiển thị 55 từ đầu tiên của bài viết. Nếu có một đoạn trích được đặt thủ công trong trình chỉnh sửa bài đăng, nó sẽ hiển thị đoạn trích đó.
get_the_excerpt()
Hàm này truy xuất đoạn trích mà không hiển thị nó, giúp bạn kiểm soát nhiều hơn về cách thức và vị trí sử dụng nó.
- Cách sử dụng:
get_the_excerpt($post)
có thể được sử dụng để lấy đoạn trích của một bài viết cụ thể. - Customization: Bạn có thể thao tác với chuỗi trả về nếu cần trước khi hiển thị nó.
Tùy chỉnh độ dài đoạn trích
WordPress cho phép bạn thay đổi độ dài đoạn trích mặc định thông qua excerpt_length
lọc.
function custom_excerpt_length($length) {
return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');
Quản lý thêm thẻ và trích dẫn thêm văn bản
the_content('Read more')
Hàm này hiển thị nội dung cho đến khi gặp thẻ “more”. Nó rất hữu ích khi hiển thị đoạn trích có độ dài tùy chỉnh ngay trong trình chỉnh sửa nội dung.
Tùy chỉnh đoạn trích thêm văn bản
Bạn có thể tùy chỉnh văn bản xuất hiện ở cuối đoạn trích (như […]
) bằng cách sử dụng excerpt_more
lọc.
function custom_excerpt_more($more) {
return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');
Xử lý HTML trong đoạn trích
Các đoạn trích WordPress theo mặc định là văn bản thuần túy. Nếu bạn cần giữ lại các thẻ HTML trong đoạn trích, bạn phải tạo một hàm tùy chỉnh hoặc sử dụng một plugin được thiết kế cho mục đích này.
Tuy nhiên, mã hóa hoặc plugin tùy chỉnh có thể cần thiết cho các yêu cầu nâng cao như bảo toàn thẻ HTML trong đoạn trích hoặc tạo đoạn trích dựa trên các thành phần cụ thể như câu hoặc đoạn văn.