[Wordpress] Cách lấy bài viết trong Wordpress

Đăng bởi: chinhnt | Lượt xem: 181 | Chuyên mục: PHP

Lấy bài viết trong wordpress, trong bài viết này vncoder.vn sẽ hướng dẫn các bạn 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 cho chúng ta trong quá trình lập trình theme wordpress


1. 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; ?>

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 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

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

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ả…

<?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; ?>

Đố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

2. 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:

<?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:

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.

$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
    );

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

<?php 
    $args = array(
        'post_status' => 'publish', // Chỉ lấy những bài viết được publish
        'showposts' => 10, // 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(); ?>

3. Kết luận

Như vậy vncoder.vn đã hoàn thành hướng dẫn cách lấy bài viết trong wordpress, hy vọng bài viết sẽ có ích cho bạn, chúc bạn thành công

Theo: huykira.net

4. Xem thêm

vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!



Khóa học liên quan

Khóa học: PHP

Xây dựng Website PHP theo MVC
Số bài học:
Lượt xem: 10528
Đăng bởi: Admin
Chuyên mục: PHP

Học lập trình PHP cơ bản
Số bài học:
Lượt xem: 10364
Đăng bởi: Admin
Chuyên mục: PHP