Hướng dẫn lấy bài viết trong wordpress (Vòng lặp get post và Wp_query)

Hướng dẫn lấy bài viết trong wordpress (Vòng lặp get post và Wp_query)

Ngày 01 - 08 - 2016 - Tại chuyên mục: Wordpress - Lượt xem: 38220

Lấy bài viết trong wordpress – Tiếp tục với loạt bài hướng dẫn lập trình wordpress, hôm nay mình sẽ hướng dẫn cho các bạn cách lấy bài viết trong wordpress sử dụng vòng lặp (loop) và wp_query. Bài này khá quan trọng chúng ta sẽ sử dụng xuyên suốt trong quá trình lập trình wordpress

Cú pháp để lấy bài viết trong wordpress:

Giải thích:

Đoạn code trên có chức năng kiểm tra có post (bài viết) hay không (have_post()), nếu có post sẽ dùng vòng lặp while để hiện thị các thành phần của post.

Ví dụ:

Trong post mình có 2 bài viết như sau

Lấy bài viết trong wordpress

Để lấy 2 bài viết này hiển thị ở trang chủ ta sử dụng đoạn code như sau đặt vào file index.php

Lấy bài viết trong wordpress

Kết quả hiện thị ở trang chủ sẽ là:

Lấy bài viết trong wordpress

 

Tương tự như thế chúng ta có thể sử dùng vòng lặp này để lấy các thành phần khác của bài viết như: Lấy ngày post, lấy nội dung, lấy phần mô tả, lấy chuyên mục, lấy tác giả…

Đối với các file tương ứng thì lấy bài viết trong wordpress sẽ như sau:

  • Vòng lặp này đặt ở file index.php nó sẽ lấy tất cả bài viết có trong post (Số lượng phụ thuộc vào sự điều chỉnh của chúng ta trong phần cài đặt).
  • Nếu đặt trong file category.php nó sẽ lấy tất cả bài viết có trong chuyên mục tương ứng khi chúng ta vào chuyên mục đó.
  • Đặt trong file single.php nó sẽ lấy 1 bài viết khi chúng ta truy cập đến bài viết tương ứng.
  • Đặt trong author.php nó sẽ lấy tất cả các bài viết mà tác giả đó viết khi chúng ta truy cập đến tác giả tương ứng

Sử dụng new Wp_query

Đọc đến đây chắc nhiều bạn thắc mắc như mình muốn lấy bài viết theo chuyên mục thì làm như thế nào? Hoặc mình muốn lấy bài viết mới nhất đặt ở sidebar thì như thế nào? Mình muốn hiển thị chỉ 1 bài viết thì như thế nào?… Để giải quyết các vấn đề đó thì mình xin giới thiệu New Wp_query. 

Đây cũng là 1 vòng lặp get post nhưng chúng ta có thể thêm những điều kiện để lấy được những nội dung mong muốn.

Cú pháp sử dụng:

Giải thích:

Tương tự như vòng lặp get post thường nó sẽ kiểm tra nếu có post thoải mãn những điều kiện trên thì nó sẽ chạy vòng lặp while để lấy các thành phần.

Đây là các điều điện được thêm vào để lấy bài viết mong muốn.

Ngoài ra nó có rất nhiều điều kiện khác để lấy bài viết trong wordpress các bạn có thể tham khảo tại đây

Ví dụ:

Ví dụ 1:   lấy 10 bài viết mới nhất:

Ví dụ 2: Lấy 5 bài viết trong chuyên mục Học tập (giả sử chuyên mục học tập có id là 1).

Ví dụ 3: lấy tất cả bài viết trong trong phần trang (post_type page).

Ví dụ 4: lấy nội dung của bài viết giới thiệu trong post_type page (Giả sử bài viết giới thiệu có id là 2)

Tổng kết:

Trên đây mình xin giới thiệu cho các bạn cách thức lấy bài viết trong wordpress sử dung các vòng lặp get post. Còn nhiều cách khác để lấy bài viết, hay hiển thị bài viết các bạn có thể tham khảo những nguồn tài liệu trên internet.

Bài này mình chỉ cách lấy bài viết 1 cách nhanh nhất nếu các bạn muốn hiểu trỏ quy trình hoạt động của các vòng lặp trên thì có thể tham khảo video dưới đây:

Có gì thắc mắc các bạn có thể CMT phía dưới. Chào thân ái và quyết thắng!

Huy Kira

Đam mê hóa học, ưng thi vào trường kinh tế... Đậu vào trường Sư phạm, quyết tâm đi dạy... Ra trường đi làm designer, tự học frontend, chuyển qua làm PHP, được công ty đào tạo laravel... Và hiện tại đang code react native(2015) => Fullstack ... ?? tối về viết blog... (Còn tiếp...)

21
  • Nhan a ơi cho em hỏi phần này mình muốn lấy mô tả của bài viết nhưng giới hạn số ký tự lại thì làm sao anh?

    Thích Trả lời 6 năm trước

    • HuyKira function teaser($limit) { $excerpt = explode(' ', get_the_excerpt(), $limit); if (count($excerpt)>=$limit) { array_pop($excerpt); $excerpt = implode(" ",$excerpt).'[...]'; } else { $excerpt = implode(" ",$excerpt); } $excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt); return $excerpt.'...'; } Dán đoạn code này file function.php Cách sử dụng: < ?php echo teaser(30); ?> // 30 là số từ cần lấy!

      Thích Trả lời 6 năm trước

  • havantuan189@gmail.comBạn ơi mình lấy 10 bài viết trong category của page tin tức có cat=1 chẳng hạn. Thì phân trang như thế nào nhỉ.

    Thích Trả lời 6 năm trước

  • PHUCEm muốn lấy 3 bài viết trong mục chuyên mục học tập, nhưng nó chỉ lấy đúng 1 bài viết , tức là 3 bài nhưng chỉ 1 link bài viết mới nhất. ko làm thế nào thế nó lấy 3 link khác nhau

    Thích Trả lời 5 năm trước

  • Dương Phúc NghĩaAnh ơi! Em muốn lấy danh sách bài viết được đính (sticky) thì $args cần những key và value nào ạ

    Thích Trả lời 5 năm trước

  • Kaga AkatsukuTks anh <3

    Thích Trả lời 5 năm trước

  • Quốc Bìnhhay quá Anh ơi ! cảm ơn Anh nhiều ạ <3

    Thích Trả lời 5 năm trước

  • NgaNhờ bạn chỉ cách lấy bài viết từ 1 database khác (trên cùng host) hiển thị lên trang chủ của WordPress với ah.

    Thích Trả lời 5 năm trước

  • An PhatNếu mình muốn nó lấy bài viết theo thời gian chỉ định thì mình thêm code như thế nào bác?

    Thích Trả lời 4 năm trước

  • thinhBạn ơi, hướng dẫn mình đặt avatar trong phần comment giống thế này dc ko bạn?

    Thích Trả lời 4 năm trước

  • tramymediaNếu muốn hiển thị bài viết ở 1 trang wordpress về trang của mình thì sao bạn,

    Thích Trả lời 4 năm trước

  • Nambạn cho mình hỏi. Mình đã hết hạn tên miền, chỉ còn code web giờ cho mình hỏi bài viết sẽ được lưu trong thư mục nào? Mình cám ơn!

    Thích Trả lời 4 năm trước

  • Thái Dương Limousine the_post();

    Em muốn làm cái slider chạy cho cái thẻ dic thì làm sao anh nhỉ ? ,em get ra vài bài viết em cho hiển thị từng bài thành slider cho bài viết nó chạy qua lại .

    Thích Trả lời 4 năm trước

  • Trung DươngTrong vi du 4 id bài viết là 1 biến động phát sinh ra khi click chọn trên 1 danh sách các bài viết mới nhất ở cột ở giữa thì làm sao lấy được nội dung bài viết đó ra ở cột bên phải? (thiết kế homepage gồm 3 cột, cột trái là danh sách các bài viết mới nhất, cột phải là 1 sidebar quảng cáo, yêu cầu khi click chọn 1 bài viết bất kỳ trong danh sách bài viết trên cột trái thì nội dung bài đó sẽ hiển thị ở cột giữa)

    Thích Trả lời 4 năm trước

  • Bùi Đức HiệpMình muốn lấy danh sách (Kiểu dạng url của bài viết) mà được phân chia theo Categories thì làm như thế nào được nhỉ

    Thích Trả lời 3 năm trước

  • TriệuCó Plugin nào đơn giản hơn ko b

    Thích Trả lời 3 năm trước

  • Phúc Lộcanh ơi, e muốn hiện bài viết mới mà kiểu 2 bài đầu thì có hình thumbnail, 4 bài tiếp thì không hiện hình thì như nào vậy anh. em cảm ơn

    Thích Trả lời 2 năm trước

  • SonnnCòn đồng k anh cứu em

    Thích Trả lời 1 năm trước

  • SonnnAnh cứu em đx k

    Thích Trả lời 1 năm trước

AVT