Trong bài viết này, tôi sẽ chia sẻ với bạn cách làm thế nào để có thể tạo ra được một template Custom Single Post cho mỗi bài viết, cho từng tác giả hoặc cho từng category riêng biệt trong thiết kế web trên WordPress. Để có thể hiểu được các hướng dẫn trong bài viết, yêu cầu bạn phải có các kiến thức cơ bản về HTML – CSS và hiểu cách hoạt động của theme WordPress.
Template Custom Single Post cho các bài viết khác nhau
Kỹ thuật này cho phép bạn tạo các mẫu template Custom Single Post và bạn có thể chọn template cần sử dụng cho mỗi bài viết bạn đang viết. Để thực hiện việc này, bạn phải tải xuống plugin Single Post Template và làm theo hướng dẫn bên dưới.
Tiếp theo, bạn tạo một file custom, ví dụ ở đây tôi đã tạo một file có tên là customsinglepost.php. Nội dung trong file này bạn có thể sao chép từ file single.php và thay đổi nó theo mong muốn của bạn hoặc bạn có thể tự tạo ra một thiết kế dành cho riêng bạn. Tuy nhiên, hãy nhớ thêm đoạn code sau vào đầu file mà bạn tạo ra:
<?php /* Single Post Template: [Mô tả tên template] Mô tả: Phần này không bắt buộc nhưng giúp ích cho việc mô tả Post Template */ ?>
Sau khi tạo xong template custom cho single post, bạn lưu template đó vào các file theme khác trong thư mục chủ đề của bạn. Để xem plugin có được kích hoạt hay chưa, bạn hãy truy cập vào bảng quản trị WordPress thử viết một bài mới sẽ thấy một drop-down box cung cấp cho bạn tùy chọn để chọn template bạn muốn cho bài viết.
Lưu ý: Nếu bạn không chọn bất kỳ template nào, nó sẽ tự động hiển thị template mặc định. Bạn có thể tạo nhiều template như bạn muốn.
Có một plugin khác thực hiện cùng một công việc tương tự như trên, được đặt tên là Custom Post Template.
Phương pháp trên là lý tưởng để tạo template Custom Single Post cho mỗi bài viết. Nếu bạn muốn có một template hoàn toàn khác nhau cho từng category, phương pháp trên có thể được tự động hóa chỉ với một vài code trong file của bạn. Điều này sẽ giúp bạn tiết kiệm thời gian để chỉnh sửa và chọn template cho mỗi bài, đặc biệt nếu bạn có nhiều bài viết đã publish trong category đó. Các phương thức tự động này được chia sẻ bởi Justin Tadlock một trong những lập trình theme WordPress nổi tiếng
Template Custom Single Post cho từng Category riêng biệt
Để sử dụng template single post riêng cho từng category, hãy thêm function sau đây vào file functions.php trong theme của bạn:
// Định nghĩa đường dẫn mặc định cho folder template single
define(SINGLE_PATH, TEMPLATEPATH . ‘/single’);
// Lọc single_template bằng custom function
add_filter(‘single_template’, ‘my_single_template’);
// Function template single chọn template
function my_single_template($single)
{
global $wp_query, $post;
// Kiểm tra template single theo category
// Kiểm tra category slug và ID
foreach((array)get_the_category() as $cat) :
if(file_exists(SINGLE_PATH . ‘/single-cat-‘ . $cat->slug . ‘.php’))
return SINGLE_PATH . ‘/single-cat-‘ . $cat->slug . ‘.php’;
else if(file_exists(SINGLE_PATH . ‘/single-cat-‘ . $cat->term_id . ‘.php’))
return SINGLE_PATH . ‘/single-cat-‘ . $cat->term_id . ‘.php’;
endforeach;
}
Đoạn code này sẽ báo cho các script tìm kiếm các mẫu template như single-cat-uncategorized.php hoặc single-cat-1.php trong folder /single. Hãy chắc chắn rằng bạn đã lưu các tệp trong một thư mục duy nhất mà bạn sẽ tạo trong folder theme
Template Custom Single Post cho từng tác giả riêng biệt
Bạn chỉ cần đặt đoạn code sau vào file functions.php và nó sẽ báo cho WordPress tìm kiếm các mẫu template như single-author-admin.php hoặc single-author-1.php nếu nó không tìm thấy template trong folder /single của bạn.
// Định nghĩa đường dẫn mặc định cho folder template single
define(SINGLE_PATH, TEMPLATEPATH . ‘/single’);
// Lọc single_template bằng custom function
add_filter(‘single_template’, ‘my_single_template’);
// Function template single chọn template
function my_single_template($single)
{
global $wp_query, $post;
// Kiểm tra template single theo tác giả
// Kiểm tra user nicename và ID
$curauth = get_userdata($wp_query->post->post_author);
if(file_exists(SINGLE_PATH . ‘/single-author-‘ . $curauth->user_nicename . ‘.php’))
return SINGLE_PATH . ‘/single-author-‘ . $curauth->user_nicename . ‘.php’;
else if(file_exists(SINGLE_PATH . ‘/single-author-‘ . $curauth->ID . ‘.php’))
return SINGLE_PATH . ‘/single-author-‘ . $curauth->ID . ‘.php’;
}
Tôi không thể chỉ cho bạn cách tạo template Custom Single Post vì nó phụ thuộc vào bạn và những gì bạn muốn làm. Lưu ý rằng điều quan trọng là phải lưu tất cả các các template custom trong folder name/single và folder này phải được đặt trong thư mục theme của bạn.
Chúc bạn may mắn.