Bỏ qua đến nội dung chính

Làm thế nào để sử dụng đúng WP_Query trên WordPress

Divi: chủ đề WordPress dễ sử dụng nhất

Divi: Chủ đề WordPress tốt nhất mọi thời đại!

hơn Tải xuống 600.000, Divi là chủ đề WordPress phổ biến nhất trên thế giới. Nó là hoàn chỉnh, dễ sử dụng và đi kèm với hơn 62 mẫu miễn phí. [Khuyến nghị]

Tôi là một fan hâm mộ lớn của lớp WP_Query: Tôi sử dụng nó trên một số trang web của khách hàng để truy xuất và hiển thị dữ liệu theo cách được cá nhân hóa.

Nếu bạn muốn sử dụng nhiều vòng lặp trên một trang, cách tốt nhất để làm điều này là chạy "WP_Query" mỗi khi bạn phải lặp.

Nhưng có một nhược điểm: Bất cứ khi nào WordPress thực hiện một vòng lặp, nó sẽ gửi các truy vấn đến cơ sở dữ liệu, việc này sẽ mất nhiều thời gian hơn và có thể làm chậm trang web của bạn.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách sử dụng truy vấn cho nhiều vòng lặp. Bạn có thể làm điều này với truy vấn chính hoặc bạn có thể sử dụng kỹ thuật tương tự với WP_Query.

Chúng tôi sẽ khám phá khía cạnh 3:

  • Tạo một chủ đề con và một tệp mẫu.
  • Tạo một mảnh mẫu cho nội dung vòng lặp.
  • Tạo các vòng lặp của chúng tôi.

Nhưng trước khi chúng ta cùng nhau khám phá Làm thế nào để cài đặt một bước 7 blog WordPress et Làm thế nào để tìm kiếm, cài đặt và kích hoạt một chủ đề WordPress trên blog của bạn

Sau đó trở lại lý do tại sao chúng ta ở đây.

Những gì bạn cần

Để thực hiện theo hướng dẫn này, bạn sẽ cần:

  • Từ một cài đặt WordPress để phát triển (cục bộ).
  • Một trình soạn thảo mã.
  • Các bài viết trong trang web của bạn với nhiều danh mục được chỉ định
  • chủ đề thứ hai mươi mười sáu của WordPress
  • Một chủ đề con của hai mươi mười sáu được cài đặt và kích hoạt

Kỹ thuật này cũng phù hợp với tình huống của bạn và chủ đề WordPress của bạn.

Tạo một chủ đề con

Đầu tiên, chúng tôi sẽ tạo ra chủ đề con của hai mươi mười sáu. Tôi đang làm điều này bởi vì tôi không muốn thay đổi chủ đề phụ huynh.

Khám phá Làm thế nào để cài đặt một child theme WordPress

Trong thư mục "wp-content / Themes" của bạn, hãy tạo một thư mục trống mới, bạn sẽ gọi "chủ đề gia sư". Sau này bạn có thể chọn tên phù hợp với bạn.

Trong thư mục này, tạo một tệp có tên style.css và thêm đoạn mã sau:

/*

Tên chủ đề: Chủ đề Tuto

URI chủ đề: https://blogpascher.com

Mô tả: Chủ đề để hỗ trợ Hướng dẫn chạy nhiều vòng trong khi truy vấn cơ sở dữ liệu chỉ một lần. Chủ đề trẻ em cho chủ đề Twenty Sixteen.

Tác giả: Hervé

URI tác giả: https://blogpascher.com

Bản mẫu: twentysixteen

Version: 1.0

*/

@import url ("../twentysixteen/style.css");

Bây giờ hãy lưu tệp này và kích hoạt chủ đề WordPress mới của bạn.

Bước tiếp theo là tạo một tệp mẫu cho các danh mục, đó là những gì chúng ta sẽ làm việc.

Tạo một bản sao của tệp "archive.php" từ chủ đề WordPress "Twenty Sixteen". Đừng di chuyển nó, nhưng tạo một bản sao. Đổi tên thành "category.php".

Để đi xa hơn, khám phá Làm thế nào để quản lý tập tin và thư mục WordPress

Bây giờ đây sẽ là tệp mẫu cho các danh mục của trang web của bạn.

Tạo một tệp mẫu mới

Bước đầu tiên là tạo một tệp mẫu mới trong chủ đề của chúng tôi sẽ chứa phiên bản sửa đổi của vòng lặp "hai mươi mười sáu".

Chúng ta cũng hãy tham khảo ý kiến ​​cùng nhau Cách đặt trang web WordPress của bạn ở chế độ Bảo trì

Trong thư mục chủ đề con, tạo thư mục con có tên "bao gồm". Và bên trong, tạo một tệp mới có tên "loop-category.php".

Tiếp theo, mở tệp "template-part / content.php" từ các thư mục chủ đề gốc (hai mươi mười sáu) và tìm mã sau đây:

<bài viết id = "bài đăng - <? php the_ID (); ?> "<? Php post_group (); ? >>

<tiêu đề lớp = "tiêu đề nhập">

<? php if (is_sticky () && is_home () &&! is_paged ()):?>

<span class = "stick-post"> <? php _e ('Nổi bật', 'twentysixteen'); ?> </ Span>

<? php endif; ?>

<? php the_title (sprintf ('<h2 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h2 > '); ?>

</ tiêu đề> <! - .entry-tiêu đề ->

<? php twentysixteen_excerpt (); ?>

<? php twentysixteen_post_thumbnail (); ?>

<div class = "mục nhập nội dung">

<? Php

/ * người dịch:% s: Tên bài đăng hiện tại * /

the_content (chạy nước rút (

__ ('Tiếp tục đọc <span class =' ​​screen-reader-text '>'% s '</ span>', 'twentysixteen'),

get_the_title ()

));

wp_link_pages (mảng (

'trước' => '<div class = "page-links"> <span class = "page-links-title">'. __ ('Trang:', 'twentysixteen'). </ Span>',

'sau' => '</ div>',

'link_b Before' => '<span>',

'link_after' => '</ span>',

Dễ dàng tạo trang web của bạn với Elementor

Elementor cho phép bạn dễ dàng tạo ra bất kỳ thiết kế trang web nào với một cái nhìn chuyên nghiệp. Ngừng trả tiền đắt cho những gì bạn có thể tự làm. [Miễn phí]

'pagelink' => '<span class = "screen-reader-text">'. __ ('Trang', 'twentysixteen'). '</ span>%',

'separator' => '<span class = "screen-reader-text">, </ span>',

));

>

</ div> <! - .entry-content ->

<footer class = "entry-footer">

<? php twentysixteen_entry_meta (); ?>

<? Php

edit_post_link (

sprintf (

/ * người dịch:% s: Tên bài đăng hiện tại * /

__ ('Chỉnh sửa <span class = "screen-reader-text"> "% s" </ span>', 'twentysixteen'),

get_the_title ()

),

'<span class = "chỉnh sửa liên kết">',

</ Span> '

);

>

</ footer> <! - .entry-footer ->

</ bài viết> <! - #post - ## ->

Sao chép mã này vào tệp "loop-category.php" mới của chủ đề con.

Chỉnh sửa tệp phần mẫu

Vòng lặp "hai mươi mười sáu" hiển thị nhiều hơn tôi cần, vì vậy tôi sẽ sửa đổi mã này. Tôi chỉ muốn hiển thị đoạn trích chứ không phải nội dung, vì vậy chúng tôi sẽ xóa nội dung.

Sự khác biệt giữa H1 và tiêu đề SEO của một bài viết WordPress là gì? Tìm hiểu bằng cách tham khảo bài viết này.

Trong tệp loop-category.php mới của bạn, tìm mã này và xóa nó:

<div class = "entry-content">

<? Php

/ * người dịch:% s: Tên bài đăng hiện tại * /

the_content (chạy nước rút (

__ ('Tiếp tục đọc <span class =' ​​screen-reader-text '>'% s '</ span>', 'twentysixteen'),

get_the_title ()

));

wp_link_pages (mảng (

'trước' => '<div class = "page-links"> <span class = "page-links-title">'. __ ('Trang:', 'twentysixteen'). </ Span>',

'sau' => '</ div>',

'link_b Before' => '<span>',

'link_after' => '</ span>',

'pagelink' => '<span class = "screen-reader-text">'. __ ('Trang', 'twentysixteen'). '</ span>%',

'separator' => '<span class = "screen-reader-text">, </ span>',

));

>

</ div> <! - .entry-content ->

Bước khác là thay thế hàm "hai mươi_sixteen_excerpt ()" bằng hàm "the_excerpt ()", vì phiên bản hai mươi mười sáu không cung cấp liên kết đến toàn bộ bài viết.

Xem thêm Làm thế nào để xem bài viết gần đây trong một thể loại cụ thể

Tìm dòng này:

<? php twenty_sixteen_excerpt (); ?>

Thay thế nó bằng cái này:

<? php the_experpt (); ?>

Chúng tôi cũng cần thực hiện một số thay đổi cho các thẻ tiêu đề.

Trong phần mô hình, thay đổi dòng:

<? php the_title (sprintf ('<h2 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h2 > '); ?>

Chỉnh sửa thẻ H2 cho H3:

<? php the_title (sprintf ('<h3 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h3 > '); ?>

Đăng ký mô hình của bạn. Sau đó quay trở lại tập tin category.php của bạn, chúng tôi sẽ tiếp tục với nó.

Tạo các vòng lặp

Trước hết, chúng tôi sẽ xóa mã "hai mươi mười sáu" khỏi tệp "category.php" của chúng tôi vì chúng tôi sẽ cần sử dụng tệp mới.

Trong tập tin category.php của bạn tìm mã này:

get_template_part ('phần-mẫu / nội dung', get_post_format ());

Và xóa.

Sau đó, chúng tôi sẽ tạo ra các vòng lặp.

Trong ví dụ này, tôi sẽ hiển thị tất cả các bài viết có thẻ "nội dung", sử dụng thẻ có điều kiện "has_tag ()". Điều này có nghĩa là tôi sẽ phải trải qua ba vòng:

Bạn đang tìm kiếm các plugin và plugin WordPress tốt nhất?

Tải xuống các plugin và WordPress chủ đề tốt nhất trên Envato và dễ dàng tạo trang web của bạn. Đã tải xuống nhiều hơn 49.720.000. [ĐỘC QUYỀN]

  • Kiểm tra đầu tiên nếu truy vấn đã đăng các mục với thẻ này.
  • Nếu vậy, thứ hai hiển thị các bài viết với nhãn này.
  • Một phần ba hiển thị các bài viết mà không có thẻ này.

Giữa mỗi vòng lặp, tôi sẽ sử dụng tua lại_posts () để tua lại các tin nhắn mà không đặt lại truy vấn: chúng tôi luôn làm việc với yêu cầu chính mỗi lần.

Vòng lặp đầu tiên: Xác minh bài viết

Trong tệp "category.php" của bạn, tìm phần đầu của vòng lặp:

trong khi (have_posts ()): the_post ();

Trên dòng này, xác định một biến mới gọi là $ Count:

$ count = 0;

Sau đó, bên trong vòng lặp này, thêm mã này:

// kiểm tra xem có bài viết nào với thẻ »không

$ tag = 'nội dung';

if (has_tag (thẻ $)) {

$ đếm + = 1;

}

Mã này kiểm tra xem các tin nhắn có nhãn "nội dung" hay không và sau đó thêm 1 vào bộ đếm nếu có.

Bên trong của vòng lặp sẽ tương tự như sau:

// Kiểm tra bài viết trong vòng lặp đầu tiên.

$ count = 0;

trong khi (have_posts ()): the_post ();

// kiểm tra xem có bài viết nào với thẻ »không

$ tag = 'nội dung';

if (has_tag (thẻ $)) {

$ đếm + = 1;

}

endwhile;

Vòng lặp thứ hai: Khôi phục bài viết bằng thẻ

Bước tiếp theo là lặp để hiển thị các mục với thẻ này, chỉ khi có bất kỳ.

Ví dụ: nếu giá trị của $ đếm lớn hơn 0.

Khám phá quá Làm thế nào để tùy chỉnh các bảng điều khiển WordPress cho một khách hàng

Thêm điều kiện này vào vòng lặp:

if ($ đếm> 0) {

rewind_posts ();

echo '<h2> Bài đăng được gắn thẻ'. $ thẻ. </ H2> ';

trong khi (have_posts ()): the_post ();

if (has_tag (thẻ $)) {

get_template_part ('bao gồm / vòng lặp', 'thể loại');

}

// Kết thúc vòng lặp.

endwhile;

}

Mã này xác minh rằng $ đếm lớn hơn 0 và nếu vậy, tua lại các mục và chạy lại vòng lặp. Đối với mỗi mục, nó sẽ kiểm tra xem nó có sở hữu nhãn của chúng tôi hay không, và nếu vậy, nó gọi phần của mẫu mà chúng ta vừa tạo.

Vòng lặp thứ ba: Xem phần còn lại của bài viết

Lối ra sẽ là một vòng lặp cuối cùng trên các mục còn lại. Nếu danh mục này không có bài viết có thẻ "nội dung", thì nó sẽ hiển thị tất cả các mục trong danh mục.

Học tốt Làm thế nào để tạo ra một blog đa tác giả và cho phép độc giả của bạn để đăng bài viết trên blog của bạn

Trong vòng lặp thứ hai của bạn, thêm điều này:

rewind_posts ();

// Vòng lặp thứ hai - các bài đăng không có thẻ 'nội dung'

trong khi (have_posts ()): the_post ();

if (! has_tag (thẻ $)) {

get_template_part ('bao gồm / vòng lặp', 'thể loại');

}

// Kết thúc vòng lặp.

endwhile; ?>

Mã cuối cùng này tua lại các mục và sau đó chạy lại vòng lặp. Lần này, nó sẽ kiểm tra xem một bài viết không có nhãn "nội dung" hay không, nó sẽ hiển thị nội dung trong "phần mẫu".

Dễ dàng tạo Cửa hàng trực tuyến của bạn

Tải xuống miễn phí WooCommerce, các plugin thương mại điện tử tốt nhất để bán các sản phẩm vật lý và kỹ thuật số của bạn trên WordPress. [Đề xuất]

Chúng tôi cũng đề nghị bạn khám phá Làm thế nào để thêm một bản in tùy chọn bài viết về WordPress

Bây giờ bạn có thể kiểm tra trang bài viết của blog của bạn. Hãy nhớ rằng bạn có thể thay đổi các bộ lọc. Trong hướng dẫn này, chúng tôi đã sử dụng "nội dung" làm bộ lọc nhãn, nhưng bạn có thể sử dụng một trong những lựa chọn của mình.

Khám phá thêm một số plugin WordPress cao cấp

Bạn có thể sử dụng các plugin WordPress khác để mang lại cái nhìn hiện đại và tối ưu hóa độ bám của blog hoặc trang web của bạn.

Chúng tôi cung cấp cho bạn ở đây một số plugin WordPress cao cấp sẽ giúp bạn làm điều đó.

1. Social Addon tường cho UserPro

UserPro có thể thú vị hơn rất nhiều với một bức tường xã hội. Đây là những gì mà Tường xã hội mở rộng của nó mang lại. Với tiện ích mở rộng Social Wall, bạn có thể tạo một bức tường trên trang web của mình và cung cấp cho các thành viên của bạn một cách mới mẻ để tương tác với cộng đồng.

Plugin WordPress Social Wall cho phép người dùng của bạn: chia sẻ tin nhắn giữa họ, chia sẻ hình ảnh, nhận xét về bài đăng của người khác, người dùng có thể thích hoặc không thích tin nhắn, họ có thể chọn chỉ hiển thị tường cho người dùng người dùng đăng nhập hoặc cho tất cả người dùng, quản trị viên có thể xóa bài đăng hoặc nhận xét từ người dùng, v.v.

Tải về | Bản demo | Web hosting

2. Flipkart Affiliate Plus

Flipkart Affiliate Plus là một plugin WordPress mô-đun kết nối trang web WordPress của bạn với API liên kết Flipkart.

Plugin WordPress này giúp bạn dễ dàng nhập dữ liệu sản phẩm từ Flipkart và cập nhật trực tiếp lên trang web của bạn. Flipkart Affiliate Plus là plugin WordPress đầu tiên cho API chính thức của Flipkart. Bằng cách sử dụng nó, bạn sẽ không cần sử dụng API của bên thứ ba. Bạn được hưởng lợi hoàn toàn từ công việc của bạn.

Tải về | Bản demo | Web hosting

3. Google Analytics có thể hành động cho WooCommerce

Google Analytics có thể thao tác là một plugin WordPress cho phép bạn sử dụng một số tính năng tốt nhất của Universal Analytics, bao gồm: Thương mại điện tử nâng cao và Theo dõi ID người dùng. Ngoài ra, plugin này hỗ trợ ẩn danh các địa chỉ IP, hoàn trả sản phẩm, nhóm nội dung, theo dõi biểu mẫu, v.v ...

Bằng cách sử dụng plugin WordPress này, bạn sẽ tiết kiệm thời gian trong việc tích hợp mã Google Analytics phức tạp, do đó bạn có thể tập trung vào việc quản lý dữ liệu của mình.

Các tính năng chính của nó là: cài đặt nhanh chóng và dễ dàng, truy cập vào các báo cáo thương mại điện tử được cải thiện 9, khả năng nghiên cứu cách các thiết bị khác nhau được sử dụng bởi cùng một người dùng và cách mua hàng được thực hiện, khả năng phân tích các sản phẩm được hoàn trả thường xuyên hơn, cuối cùng để có biện pháp khắc phục và hơn thế nữa.

Tải về | Bản demo | Web hosting

Các tài nguyên được đề xuất khác

Chúng tôi cũng mời bạn tham khảo các tài nguyên dưới đây để đi xa hơn trong việc kiểm soát và kiểm soát trang web và blog của bạn.

Kết luận

Thế thôi! Đó là tất cả cho hướng dẫn kỹ thuật khá này. Tôi hy vọng chúng tôi đã rõ ràng về cách sử dụng WP_Query đúng cách trên WordPress. Đừng ngần ngại chia sẻ mẹo với bạn bè trên mạng xã hội của bạn.

Tuy nhiên, bạn cũng sẽ có thể tham khảo ý kiến ​​của chúng tôi ressources, nếu bạn cần thêm các yếu tố để thực hiện các dự án tạo trang Internet của mình, bằng cách tham khảo hướng dẫn của chúng tôi về Tạo blog WordPress.

Nhưng trong lúc này, hãy cho chúng tôi biết về bạn ý kiến và đề xuất trong phần dành riêng.

...

Bài viết này chứa comments 7
  1. Giới thiệu
    | Điều 1 | | arti 2 | | _A3_ | | |
    | __________ | | _______ | _____ | Điều 6 |
    Giới thiệu XUẤT KHẨU | | |
    | _________ 4 _________ | | ____ | | ___________ |

  2. Xin chào Blair,
    Tôi cảm ơn bạn vì những tutos perfais,
    Tôi muốn xin một chút giúp đỡ xin vui lòng.
    Tôi tạo wordpres chủ đề của riêng mình (html / css) và tôi gặp một vấn đề tôi sẽ cố gắng phát triển: Tôi dự định tạo một trang web tương tự msn.com trang web của tôi sẽ được chia thành nhiều phần (phần ) đó là: tin tức, giải trí, sức khỏe, lối sống ... vv điều đó có nghĩa là tôi muốn nhận ra một nhóm Điều đầu tiên và một nhóm thứ hai, một nhóm thứ ba ... vv nhưng hiển thị tất cả các nhóm trên cùng một trang và mỗi nhóm thuộc về một danh mục (thích hợp). Tôi tự hỏi nếu văn phòng backpress wordpress này có thể quản lý nội dung của từng chủ đề riêng biệt? với vòng lặp wordpress // Nội dung bài đăng xin lỗi, không tìm thấy bài viết nào! Tôi nhận được một hỗn hợp các mặt hàng:
    có nghĩa là bài báo viết cuối cùng của tôi được đặt trực tiếp vào phần đầu tiên đó là tin tức, trong khi đó là một bài viết thuộc về lối sống ví dụ.
    Tôi đã xem qua trang này https://codex.wordpress.org/fr:La_Boucle Tôi nghĩ rằng phần vòng nhiều có thể giải quyết vấn đề của tôi!
    Tôi hy vọng bạn hiểu những gì tôi đang cố gắng để nói

    cảm ơn bạn trước cho câu trả lời của bạn,
    Trân trọng,

    1. Bonjour,
      Tôi nghĩ rằng bạn đang phức tạp công việc không có gì. Tôi hiểu rằng bạn muốn tổ chức các bài viết của bạn thành các loại (nhóm) và mỗi nhóm có thể thuộc về một lĩnh vực thích hợp, có thể là các loại phụ huynh. Có vòng lặp có thể giúp bạn làm điều đó, và nó ấn tượng trong sự đơn giản của nó.
      Lòng can đảm!

      1. Bonjour.
        trước hết cảm ơn bạn đã phản ứng nhanh chóng của bạn. Tôi nghĩ chủ đề tôi vừa tạo không còn tương thích với wordpress và đó là vấn đề bắt nguồn từ đâu.
        trên thực tế vì ý kiến ​​của bạn không hỗ trợ hình ảnh đính kèm tôi sẽ giải thích bằng cách vẽ:
        đây là một trong những loại của trang web
        Giới thiệu
        | Điều 1 | | arti 2 | | _A3_ | | | hãy tưởng tượng rằng mỗi bài viết là
        | __________ | | _______ | _____ | Điều 6 | đại diện bởi một gạch; vì vậy chúng tôi có 6
        Giới thiệu XUẤT KHẨU | | | bài viết (mỗi ô chứa hình ảnh
        | _________ 4 _________ | | ____ | | ___________ | và tiêu đề của một bài viết cụ thể)

        Vấn đề thực sự của tôi, ông Blair, là tôi không thể hoàn thành các bài viết của mình để chúng có thể chuyển từ gạch 1 sang lát gạch 6, nghĩa là khi tôi thêm một bài viết mới và đó là Tôi xuất bản nó Tôi muốn cái sau thay thế cho bài viết 1 như trong tất cả các chủ đề hiện có.
        - Tôi nghĩ không thể thực hiện được vì mỗi bài đăng (bài viết) có các thuộc tính riêng như vị trí, chiều cao, chiều rộng ... vv, bạn nghĩ gì sau đó?
        tất nhiên ý tưởng này không rõ ràng với kế hoạch này, nếu không nếu tôi không làm phiền bạn và bạn muốn giúp tôi, bạn có e-mail của tôi (bạn chỉ phải gửi một e-mail có chứa tên của bạn).

        Cảm ơn bạn lần nữa vì đã suy nghĩ lại

        1. Chào buổi tối, trong trường hợp cụ thể này, bạn sẽ cần phải nhảy với các biến kiểu "int", vì vậy, mỗi lần vòng lặp, bạn tăng biến và tùy thuộc vào giá trị của biến, bạn có thể thay đổi hiển thị bài viết. Ví dụ:

          if ($ i == 1) {
          // mã của bạn ở đây
          } else if ($ i == 2) {
          Tương tự
          }
          $ i ++;

          Thật không may, tôi không thể tự giúp bạn vào thời điểm này.

  3. [...] Trong hướng dẫn này, tôi sẽ dạy cho bạn cách sử dụng các truy vấn WP_Query hiệu quả hơn trên WordPress. [...]

Để lại một bình luận

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *

Trang web này sử dụng Akismet để giảm bớt không mong muốn. Tìm hiểu thêm về cách sử dụng dữ liệu nhận xét của bạn.

Trở lại đầu trang
0 cổ phiếu
cổ phiếu
tweet
Enregistrer