Đăng nhập

Lập trình WordPress: Vòng lặp (Loop)

Loop trong WordPress là gì?

Loop (vòng lặp) là cách WordPress lấy ra và hiển thị bài viết từ cơ sở dữ liệu.

Nó giống như:

“Tôi có 10 bài viết → duyệt từng cái một → hiển thị tiêu đề, nội dung, ảnh,…”

Cấu trúc Loop cơ bản:

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <h2><?php the_title(); ?></h2>
        <div><?php the_content(); ?></div>
    <?php endwhile; ?>
<?php else : ?>
    <p>Không có bài viết nào.</p>
<?php endif; ?>

Giải thích:

  • have_posts(): Kiểm tra còn bài viết không
  • the_post(): Duyệt qua từng bài viết, chuẩn bị dữ liệu cho các hàm như the_title()
  • the_title(): Hiển thị tiêu đề
  • the_content(): Hiển thị nội dung bài viết

Ví dụ thực tế: hiển thị danh sách bài viết

Chèn đoạn này vào index.php hoặc home.php trong theme:

<?php if ( have_posts() ) : ?>
    <ul>
        <?php while ( have_posts() ) : the_post(); ?>
            <li>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                <p><?php the_excerpt(); ?></p>
            </li>
        <?php endwhile; ?>
    </ul>
<?php else : ?>
    <p>Chưa có bài viết nào.</p>
<?php endif; ?>

Một số hàm thường dùng trong Loop

HàmTác dụng
the_title()Hiển thị tiêu đề
the_content()Hiển thị toàn bộ nội dung
the_excerpt()Hiển thị đoạn trích (mặc định 55 từ)
the_permalink()Lấy link đến bài viết
the_post_thumbnail()Hiển thị ảnh đại diện
the_category()Hiển thị danh mục
the_tags()Hiển thị thẻ tag
get_the_date()Lấy ngày đăng bài

Tùy chỉnh Loop (WP_Query)

Để lấy bài viết theo điều kiện riêng, dùng WP_Query:

<?php
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'category_name' => 'tin-tuc',
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) :
    while ( $query->have_posts() ) : $query->the_post(); ?>
        <h2><?php the_title(); ?></h2>
    <?php endwhile;
    wp_reset_postdata();
else :
    echo 'Không có bài viết.';
endif;
?>

Tóm tắt

  • Loop là xương sống để hiển thị bài viết
  • Cơ bản: have_posts() + the_post() + các hàm the_title(), the_content()
  • Nâng cao: dùng WP_Query để lọc bài viết theo điều kiện riêng

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.