ĐĂNG TIN
logo
Online:
Visits:
Stories:
Profile image
Tác giả: VNNews
Trang tin cá nhân | Bài đã đăng
Lượt xem

Hiện tại:
1h trước:
24h trước:
Tổng số:
Vòng lặp trong wordpress-phần 1
Thursday, August 1, 2013 5:51
% of readers think this story is Fact. Add your two cents.


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:

Vòng lặp WP_Query

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:

// The Query

$the_query = new WP_Query( $args );

// The Loop

while ( $the_query->have_posts() ) : $the_query->the_post();

echo ‘

  • ’;

    the_title();

    echo ‘

  • ’;

    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 ‘

  • ’;

    echo get_the_title($id);

    echo ‘

  • ’;

    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

    Tin nổi bật trong ngày
    Tin mới nhất

    Register

    Newsletter

    Email this story

    If you really want to ban this commenter, please write down the reason:

    If you really want to disable all recommended stories, click on OK button. After that, you will be redirect to your options page.