Hướng dẫn lấy bài viết mới nhất trong WordPress chi tiết

Admin
26/06/23
0

WordPress hiện đang là nền tảng xuất bản, tạo blog thông dụng nhất hiện nay. Nếu bạn chưa biết cách lấy bài viết mới nhất trong WordPress thì đừng bỏ lỡ những hướng dẫn mà Mailinhwp.vn sắp giới thiệu dưới đây. Cùng theo dõi và thao tác theo nhé.

Hướng dẫn lấy bài viết trong WordPress và ví dụ

Để lấy bài viết trong WordPress nhanh và chính xác bạn thực hiện như sau:

Cú pháp lấy bài viết trong WordPress

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
   // Các thành phần của bài viết
<?php endwhile;?>
<?php endif; ?>
Hướng dẫn lấy bài viết mới nhất trong WordPress chi tiết
Cách lấy bài viết trong WordPress

Giải thích

Đoạn code ở trên có nhiệm vụ kiểm tra có bài viết (post) tồn tại trên WordPress hay không (have_post()). Trường hợp có tồn tại bài viết thì sẽ sử dụng vòng lặp while để hiển thị những thành phần theo yêu cầu.

Việc đặt code này ở những file khác nhau sẽ mang lại hiệu quả hiển thị khác nhau, cụ thể:

  • Nếu đặt code này tại file index.php thì nó sẽ lấy toàn bộ bài viết nằm trong post để hiển thị lên trang chủ theo yêu cầu. Số lượng bài viết sẽ phụ thuộc vào viêc điều chỉnh của bạn tại phần Cài đặt.
  • Code được đặt tại file category.php thì nó sẽ lấy toàn bộ bài viết nằm tại chuyên mục mà bạn truy cập vào.
  • Nếu đặt code ở file single.php nó sẽ tiến hành lấy 1 bài viết mà bạn truy cập vào.
  • Code được đặt trong author.php thì nó sẽ lấy toàn bộ bài viết của tác giả mà bạn truy cập vào.

Các thành phần bài viết mà bạn có thể lấy thường là:

  • <?php the_title(); ?> Lấy tiêu đề.
  • <?php the_content(); ?> Lấy nội dung.
  • <?php the_excerpt(); ?> Lấy mô tả.
  • <?php the_category(); ?> Lấy chuyên mục.
  • <?php the_author(); ?> Lấy tác giả.
  • <?php the_post_thumbnail(); ?> Lấy hình đại diện.
  • <?php the_date(); ?> Lấy ngày xuất bản.
  • <?php the_permalink(); ?> Lấy đường dẫn.

Các ví dụ minh họa

Trong post ở WordPess sẽ có 2 bài viết với tiêu đề:

Hướng dẫn lấy bài viết mới nhất trong WordPress chi tiết
Hướng dẫn lấy bài viết mới nhất trong WordPress chi tiết 3

Nếu muốn hiển thị tiêu đề của 2 bài viết trên thì lên trang chủ thì thêm đoạn code sau vào file index.php:

<?php if (have_posts()) : ?> 
<?php while (have_posts()) : the_post(); ?>    
<?php the_title (); ?> <br>
<?php endwhile;?> 
<?php endif; ?>

Cuối cùng kết quả trên trang chủ sẽ được hiển thị như sau:

Ngoài ra, bạn cũng có thể sử dụng đoạn mã trên để lấy những thành phần khác như nội dung, ngày post, mô tả, chuyên mục hoặc tác giả,… Dưới đây là đoạn code tham khảo:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
	<h2>
		<a href="<?php the_permalink(); // lấy link của bài viết ?>">
			<?php the_title(); // lấy tiêu đề ?>
		</a>
	</h2>
	<div class="meta"><?php echo get_the_date('d - m -Y'); // lấy ngày post bài ?></div>
	<?php the_content(); // lấy toàn bộ nội dung bài post ?>
	<?php the_excerpt(); // Lấy mô tả ngắn của bài post ?>
	<?php the_category(); // lấy category của bài post này ?>
<?php endwhile; ?>
<?php endif; ?>

Sử dụng vòng lặp new Wp_query lấy bài viết WordPress với tham số

Trường hợp bạn cần lấy bài viết theo chuyên mục; bài viết mới nhất ở vị trí sidebar hoặc muốn chỉ hiển thị duy nhất một bài viết thì có thể sử dụng vòng lặp New Wp_query. Đây cũng là một vòng lặp lấy bài viết nhưng bạn được phép bổ sung những điều kiện khác để có thể lấy được nội dung cần thiết. Chi tiết như sau:

Cú pháp sử dụng

<?php 
	$args = array(
		'post_status' => 'publish', // Chỉ lấy những bài viết được publish
		'post_type' => 'post', // Lấy những bài viết thuộc post, nếu lấy những bài trong 'trang' thì để là page 
		'showposts' => 12, // số lượng bài viết
		'cat' => 1, // lấy bài viết trong chuyên mục có id là 1
	);
?>
<?php $getposts = new WP_query($args); ?>
<?php global $wp_query; $wp_query->in_the_loop = true; ?>
<?php while ($getposts->have_posts()) : $getposts->the_post(); ?>
	<?php //các thành phần cần lấy  ?>
<?php endwhile; wp_reset_postdata(); ?>

Giải thích

Cũng giống như vòng lặp lấy bài viết ở trên, New Wp_query sẽ kiểm tra xem có tồn tại bài viết nào đáp ứng những điều kiện trên không. Nếu có thì tiến hành chạy vòng lặp while để lấy những thành phần bạn mong muốn.

Dưới đây là một số điều kiện đầu vào mà bạn có thể áp dụng để lấy các thành phần theo mong muốn:

  • posts_per_page: Số lượng bài viết
  • post_type: Thể loại post, có thể chọn lấy bài trong post hoặc page.
  • cat: ID chuyên mục.
  • p: ID bài viết cần lấy.
  • post_status: Trạng thái bài viết.
  • author: ID tác giả.

Các ví dụ minh họa

Ví dụ 1: Để lấy 5 bài viết mới nhất vừa được công bộ, bạn thêm đoạn mã sau:

<?php 
	$args = array(
		'post_status' => 'publish', // Chỉ lấy những bài viết được publish
		'showposts' => 5, // số lượng bài viết
	);
?>
<?php $getposts = new WP_query($args); ?>
<?php global $wp_query; $wp_query->in_the_loop = true; ?>
<?php while ($getposts->have_posts()) : $getposts->the_post(); ?>
	<?php //các thành phần cần lấy  ?>
<?php endwhile; wp_reset_postdata(); ?>

Ví dụ 2: Tiến hành lấy 10 bài viết tại chuyên mục Hosting giá rẻ (trong đó, chuyên mục Hosting giá rẻ sẽ có ID là 1)

<?php 
	$args = array(
		'post_status' => 'publish', // Chỉ lấy những bài viết được publish
		'showposts' => 5, // số lượng bài viết
                'cat' => 1, // cat_id
	);
?>
<?php $getposts = new WP_query($args); ?>
<?php global $wp_query; $wp_query->in_the_loop = true; ?>
<?php while ($getposts->have_posts()) : $getposts->the_post(); ?>
	<?php //các thành phần cần lấy  ?>
<?php endwhile; wp_reset_postdata(); ?>

Nếu không thành thạo trong việc chèn code để lấy bài viết mới nhất trong wordpress, bạn có thể sử dụng các plugin hỗ trợ thao tác này. Đồng thời hiện nay, hầu hết các theme bản quyền cũng hỗ trợ chức năng này ở phần cài đặt widget.

Lời kết

Trên đây là toàn bộ nội dung hướng dẫn cách lấy bài viết mới nhất trong WordPress mà Mailinhwp.vn muốn giới thiệu đến bạn. Hy vọng bạn có thể thao tác nhanh chóng và dễ dàng sau khi đọc bài viết. Trong quá trình thực hiện nếu có vấn đề gì bạn có thể chia sẻ dưới bài viết để mọi người dùng giải đáp nhé.

Trả lời

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 *