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ôngthe_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àm | Tá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àmthe_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