Vòng lặp trong wordpress-phần 1
Để thiết kế được một theme wordpress bạn cần có kiến thức nền về các hàm, vòng lặp, truy vấn… trong wordpress, bắt đầu từ bài hôm nay tôi sẽ đi cung cấp các kiến thức nền đó cho bạn.
Nội dung của bài học hôm nay: Vòng lặp trong wordpress
Tôi xin nói sơ qua cho những bạn nào chưa có kiến thức về nền tảng cơ sở dữ liệu được hiểu, cơ sở dữ liệu thì gồm nhiều bảng, bảng ở đây giống nhưng một bảng trong excel đó bạn nó sẽ bao gồm các cột vòng dòng, bạn chỉ cần hiểu chừng đó là đủ không cần nghiên cứu sâu vào cơ sở dữ liệu làm gì cho mệt, tất nhiên những ai làm chuyên về web thì phải nghiên cứu nó kỹ, còn ở đây ta xây dựng theme trên nền tảng wordpress
Vậy vòng lặp trong wordpress là gì?
Nó có nhiệm vụ truy vấn theo yêu cầu của người thiết kế theme, ví dụ tôi bảo nó hay hiển thị bài viết ở dòng 4 tới dòng 8, thì nó sẽ đi tìm những bài viết từ dòng 4 đến dòng 8 về cho chúng ta. Sau đây tôi sẽ giới thiệu một số vòng lặp, bạn phải nắm vững nha vì nó rất là quan trọng trong thiết kế theme wordpress
Vòng lặp theo trang chức năng: trong hệ thống cấu trúc theme có các file như category.php, singgle.php, index.php…chức năng của từ file này bạn có thể xem lại ở bài viết trước
Ví dụ ở trang category, trang chuyên hiển thị một list các bài viết theo chuyên mục
while (have_posts()) : the_post();
//các lệnh ở trong này
endwhile;
Các lệnh trong này có thể là hiển thị tiêu đề bài viết (the_title()), nội dung bài viết (the_content())…
Khi người dùng click vào menu để xem các bài viết trong chuyên mục (category) thì trang category.php được gọi và nếu bạn chỉ cần hiển thị tiêu đề của các bài viết trong chuyên mục thì bạn dùng cấu trúc
while (have_posts()) : the_post();
the_title();
endwhile;
(hiển thị list các tiêu đề bài viết trong một chuyên mục do người dùng yêu cầu)
Và điều tương tự khi người dùng muốn xem chi tiết nội dung thì trang single.php được gọi và bạn muốn hiển thị tiêu đề và toàn bộ nội dung của bài đúng không nào và sau đây là cấu trúc vòng lặp
while (have_posts()) : the_post();
the_title();
the_content();
endwhile;
Qua hai ví dụ trên chúng ta thấy rằng những nhà phát triển wordpress đã làm việc rất tốt mang tới cho chúng ta sự dễ dàng trong truy vấn
Nếu bạn chỉ làm dạng theme theo kiểu viết blog thì chỉ cần nắm loại vòng lặp theo chức năng của trang, nhưng nhu cầu thiết kế theme của chúng ta không dừng lại ở đó, chúng ta còn muốn làm được những trang tin tức chẳng hạn, lúc này vòng lặp theo trang chức năng sẽ không giúp được chúng ta và wordpress cung cấp cho chúng ta loại vòng lặp truy vấn theo yêu cầu
Vòng lặp truy vấn theo yêu cầu:
Ví dụ bạn xem hình sau:
Thì trong trượng hợp này chúng ta sẽ phải dùng vòng lặp truy vấn theo yêu cầu và một trong số đó mà tôi hay dùng là WP_Query
Cấu trúc của nó như sau:
<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();
echo ‘<li>’;
the_title();
echo ‘</li>’;
endwhile;
// Reset Post Data
wp_reset_postdata();
/* Example 2 (without global var) */
$args= array(
.
.
.
);
$query= new WP_Query($args);
// Loop
while($query->have_posts()):
$query->next_post();
$id = $query->post->ID;
echo ‘<li>’;
echo get_the_title($id);
echo ‘</li>’;
endwhile;
?>
Bài viết đã quá dài, một lúc bạn sẽ thấy chán do vậy tôi xin tạm dừng bài viết tại đây, tôi sẽ tiếp tục giải thích về vòng lặp này trong bài tiếp theo
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress