Hướng dẫn dùng file index trong PHP

Phần 6 của serie Lập trình theme WordPress, phần này sẽ hướng dẫn bạn cách viết code cho file index.php cho phù hợp, cách ứng dụng hàm get_template_part

https://www.youtube.com/watch?v=qbV2Kj337CI

Nội dung chính Show

  • Phần 6 của serie Lập trình theme WordPress, phần này sẽ hướng dẫn bạn cách viết code cho file index.php cho phù hợp, cách ứng dụng hàm get_template_part
  • Lời kết
  • Các bài viết liên quan:
  • Video liên quan

Tiếp tục phần này, chúng ta sẽ viết code cho file index.php. Đây là file mà nó sẽ làm trang chủ mặc định cho WordPress và thường là ở phần này chúng ta sẽ viết code hiển thị danh sách các post mới nhất trên website.

Bây giờ hãy mở file index.php ra, chúng ta đã có hai đoạn code như như dưới đây mà chúng ta đã chèn vào ở các phần trước.

get_header();?>

get_footer();?>

Điều này có nghĩa là nó sẽ load file header.php ở trên đầu và load nội dung file footer.php ở dưới. Bây giờ chúng ta sẽ muốn viết code hiển thị nội dung ra giữa website thì tất nhiên sẽ viết giữa hai đoạn này.

Trước tiên, chúng ta có đoạn HTML để chia cột phần hiển thị nội dung ra vì chúng ta muốn phần hiển thị post mới nhất nằm bên trái và sidebar nằm bên phải.

get_header();?>

<div class="content">

<section id="main-content">

</section>

<section id="sidebar">

</section>

</div>

get_footer();?>

Có nghĩa là mình sẽ có class,content dùng để bao bọc xung quanh phần hiển thị nội dung và sidebar. Sau đó,#main-content là khung hiển thị nội dung và #sidebar là khung hiển thị sidebar của website.

Bây giờ ở #main-content, chúng ta viết một đoạn loop (vòng lặp) vào như sau:

<section id="main-content">

if(have_posts()):while(have_posts()): the_post();?>

endwhile;?>

else:?>

endif;?>

</section>

Đây là một đoạn loop được dùng để lấy dữ liệu từ post type trên truy vấn ra bên ngoài. Nếu bạn chưa hiểu ý nghĩa của loop và query trong WordPress thì bạn nên tạm dừng 15 phút đọc kỹ Tìm hiểu WordPress Query và Loop, ở đó mình đã giải thích rất kỹ.

Bây giờ ta đã có loop rồi, thì dĩ nhiên chúng ta sẽ tiến hành viết code hiển thị các thành phần của post như tiêu đề, thumbnail,ra bên ngoài đúng không? Okay, chúng ta bổ sung code vào 2 chỗ trống bên trên như sau:

<section id="main-content">

if(have_posts()):while(have_posts()) :the_post();?>

get_template_part('content',get_post_format());?>

endwhile; ?>

else:?>

get_template_part('content','none');?>

endif;?>

</section>

Hai đoạn mà mình in đậm là hai đoạn mà chúng ta cần viết thêm vào đấy. Thế 2 đoạn get_template_part() này có ý nghĩa gì đây?

Ngay đoạn số 03, get_template_part( 'content', get_post_format() ) nghĩa là nó sẽ load filecontent-$format.php trong thư mục theme. Cái $format nghĩa là cái tên định danh của từng loại Post Format như video, audio, image,mà nếu post đó chưa chọn post format thì nó sẽ load file content.php.

Đoạn 06, get_template_part( 'content', 'none' ) nghĩa là nó sẽ load file content-none.php trong thư mục theme, và file này chúng ta sẽ viết nội dung hiển thị thông báo query này chưa có dữ liệu, ví dụ như nó sẽ báo website này chưa có bài viết chẳng hạn.

Những tập tin content này chúng ta sẽ viết tiếp ở các bài sau.Tiếp tục, ngay bên dưới phần, bạn hãy viết thêm code hiển thị hàm phân trang như sau:

thachpham_pagination();?>

Trông nó thế này:

Hướng dẫn dùng file index trong PHP

Bây giờ ta tạo hàm thachpham_pagination() vào file functions.php nhé:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

/**

@ Tạo hàm phân trang cho index, archive.

@ Hàm này sẽ hiển thị liên kết phân trang theo dạng chữ: Newer Posts & Older Posts

@ thachpham_pagination()

**/

if (!function_exists('thachpham_pagination')){

functionthachpham_pagination(){

/*

* Không hiển thị phân trang nếu trang đó có ít hơn 2 trang

*/

if ($GLOBALS['wp_query']->max_num_pages<2){

return'';

}

?>

<nav class="pagination"role="navigation">

if(get_next_post_link()):?>

<div class="prev"> next_posts_link(__('Older Posts','thachpham'));?></div>

endif;?>

if (get_previous_post_link()):?>

<div class="next">previous_posts_link(__('Newer Posts', 'thachpham'));?></div>

endif;?>

</nav><?php

}

}

Sau khi chèn xong, bạn ra trang chủ sẽ thấy liên kết Older Posts như thế này, khi click vào nó vẫn qua trang thứ hai nhưng có điều là chưa có nội dung gì thôi, phần hiển thị nội dung chúng ta sẽ làm ở bài sau.

Tiếp tục, ở phần #sidebar, bạn hãy chèn thêm get_sidebar() vào như sau nhé:

<section id="sidebar">

get_sidebar();?>

</section>

Thế là xong nội dung file index.php rồi đó.

Lời kết

Trong phần này chúng ta đã tìm hiểu qua việc viết code cho file index.php, tìm hiểu công dụng của hàmget_template_part() để tổ chức cấu trúc theme cho khoa học hơn. Như bạn thấy phần này chúng ta đã dùng hàm này để load file content.php, content-$format.php content-none.php. Do vậy, ở phần sau chúng ta sẽ tiến hành viết code cho các file content.php này nhé.

Các bài viết liên quan:

  • [Lập trình theme WordPress] Code cho content.php
  • [Lập trình theme WordPress] Code cho Post Format
  • [Lập trình theme WordPress] Viết code cho single.php và page.php
  • [Lập trình theme WordPress] Viết code cho trang lưu trữ và 404

WordPress FAQ » Học WordPress > Lập trình WordPress> Lập trình Themes


WordPress FAQ | Hoc WordPress | Su dung WordPress | Lap trinh WordPress| Plugin WordPress | Thuat ngu WordPress | Theme WordPress | Lap trinh Themes | Lap trinh plugin

Ảnh. [Lập trình theme WordPress] Viết code cho file index.php