Tùy biến giao diện cho từng trang trong WordPress

5/5 - (1 bình chọn)

Trong bài này, mình sẽ chia sẻ cho các bạn cách làm thế nào để có thể tạo ra được một template Custom Single Post cho từng bài viết, cho từng tác giả hay cho từng category riêng biệt trong WordPress. Để có thể nắm được những hướng dẫn trong bài, yêu cầu bạn phải có các kiến thức cơ bản về HTML – CSS và hiểu về cách thức làm việc của theme WordPress.

custom post type 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 ra các template Custom Single Post và bạn có thể lựa chọn template cần sử dụng cho mỗi bài viết mà bạn đang viết.
Để làm được việc này, bạn phải tải plugin Single Post Template về và thực hiện theo các hướng dẫn sau đây. Tiếp theo, bạn tạo một file custom, ví dụ ở đây mình tạo một file tên là customsinglepost.php.
Nội dung trong file này bạn có thể copy từ file single.php rồi thay đổi lại theo mong muốn của bạn, hoặc bạn cũng có thể tự tạo ra một thiết kế dành cho riêng bạn. Tuy nhiên, bạn nhớ phải 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 theme của bạn. Để xem plugin đã được kích hoạt hay chưa, bạn 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 các tùy chọn để bạn lựa chọn template mà bạn muốn cho bài viết.

Capture
Ghi chú: 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ư ý muốn. Có một plugin khác cũng thực hiện được công việc tương tự như trên, tên là Custom Post Template. Phương pháp trên là lý tưởng để tạo template Custom Single Post cho từng 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 thì phương pháp trên có thể 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 được thời gian phải đi chỉnh sửa và chọn template riêng cho từng bài, nhất là khi bạn có rất nhiều bài viết đã publish trong category đó.
Các phương pháp tự động này được một trong những nhà lập trình theme WordPress nổi tiếng là Justin Tadlock chia sẻ.

Template Custom Single Post cho từng Category riêng biệt

Để sử dụng template single post riêng cho từng category, bạn 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 singledefine(SINGLE_PATH, TEMPLATEPATH . '/single'); // Lọc single_template bằng custom functionadd_filter('single_template', 'my_single_template'); // Function template single chọn templatefunction 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;}

Template Custom Single Post cho từng tác giả riêng biệt

Bạn đơn giản chỉ cần đặt code sau vào file functions.php và nó sẽ báo cho WordPress để tìm kiếm các 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 singledefine(SINGLE_PATH, TEMPLATEPATH . '/single'); // Lọc single_template bằng custom functionadd_filter('single_template', 'my_single_template'); // Function template single chọn templatefunction 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';}

Mình không thể chỉ rõ cho bạn từng cách tạo template Custom Single Post bởi vì việc này tùy thuộc vào bạn và những gì mà bạn muốn thực hiện. Lưu ý quan trọng là bạn phải lưu tất 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 thành công.

5/5 - (1 bình chọn)


Trả lời