Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh
Hôm nay trên subreddit WordPress, ai đó đã hỏi liệu có thể có các bài đăng từ loại bài đăng tùy chỉnh (ví dụ như công thức nấu ăn) xuất hiện trong blog chính với tần suất đã đặt (ví dụ:. mỗi bài thứ 5). Suy nghĩ ban đầu của tôi là, có lẽ không. Nhưng dù sao tôi cũng quyết định đào sâu một chút. Hóa ra có một bộ lọc tiện dụng tên là if ( ! is_main_query() ) return $posts;3 mà tôi không biết là có tồn tại Show
Bộ lọc if ( ! is_main_query() ) return $posts;3 được chạy ở cuối if ( ! is_main_query() ) return $posts;5 [] – sau khi kết quả của truy vấn đã được truy xuất từ cơ sở dữ liệu, nhưng trước khi Vòng lặp bắt đầu. Chúng tôi có thể sử dụng bộ lọc này để sửa đổi kết quả, bao gồm thêm bộ lọc của riêng chúng tôi. Chức năng bộ lọc của chúng tôi sẽ nhận được hai đối số
add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; } Chúng tôi không muốn bộ lọc của mình ảnh hưởng đến danh sách bài đăng trong bảng điều khiển quản trị viên, vì vậy chúng tôi sẽ bắt đầu với if ( is_admin() ) return $posts; Chúng tôi cũng chỉ muốn bộ lọc của mình ảnh hưởng đến truy vấn chính, vì vậy chúng tôi sẽ thêm bộ lọc này if ( ! is_main_query() ) return $posts; Chúng tôi sẽ đặt một biến cho tần suất chèn mà chúng tôi sẽ sử dụng trong một số phép toán sau này (nếu chúng tôi đang phát triển biến này dưới dạng plugin công khai, chúng tôi có thể đặt/lấy giá trị này làm tùy chọn/cài đặt) $freq = 5; Bây giờ chúng tôi sẽ lấy công thức nấu ăn của chúng tôi. Chúng tôi sẽ nhanh chóng tính toán if ( is_admin() ) return $posts;2 của mình, dựa trên giá trị từ truy vấn chính và tần suất của chúng tôi, đồng thời sử dụng cùng một giá trị if ( is_admin() ) return $posts;3 làm truy vấn chính – điều này đảm bảo rằng các bài đăng được chèn luôn đồng bộ bất kể cài đặt phân trang________số 8 Sau đó, chúng tôi sẽ lặp lại các công thức nấu ăn và chèn chúng vào mảng if ( is_admin() ) return $posts;0 bằng cách sử dụng if ( is_admin() ) return $posts;5 [tài liệu]. Chúng tôi sẽ làm một phép toán nhỏ để đảm bảo rằng công thức nấu ăn của bạn được chèn chính xác (Tôi chắc chắn rằng có một cách hay hơn để thực hiện việc này – nếu bạn biết một cách, vui lòng cho tôi biết trong phần nhận xét) if ( is_admin() ) return $posts;1 Đây là mã cuối cùng tất cả cùng nhau if ( is_admin() ) return $posts;2 Tác giả Bố cục và hình thức của các bài đăng này ở chân trang của bạn có thể được tạo kiểu để trông như thế nào bạn muốn bằng cách sử dụng CSS. Nơi tốt nhất để thêm bất kỳ CSS nào là trong tệp if ( is_admin() ) return $posts;34 nằm trong thư mục chính của chủ đề của bạn. Chúng tôi có một số CSS khả thi mà bạn có thể muốn sử dụng bên dưới if ( is_admin() ) return $posts;3 Khi CSS này đã được lưu và trang được làm mới, bạn sẽ thấy bố cục của các bài đăng Công thức của bạn ở chân trang sẽ thay đổi như thế này Tầm quan trọng của việc đặt lại vòng lặpBạn có thể nhận thấy rằng sau khi xác định các đối số cần thiết trong mã, một vòng lặp bài đăng bắt đầu và kết thúc bằng hàm if ( is_admin() ) return $posts;35. Việc sử dụng chức năng này rất quan trọng và đây là lý do tại sao Khi WordPress tạo bố cục trang, nó sử dụng biến toàn cầu if ( is_admin() ) return $posts;36 hoạt động tốt nếu chỉ có một vòng lặp trong trang. Bây giờ, chúng tôi đã thêm vòng lặp tùy chỉnh của mình, về cơ bản, chúng tôi sẽ ghi đè biến toàn cầu if ( is_admin() ) return $posts;36 và trừ khi chúng tôi thông báo cho WordPress rằng vòng lặp đã đặt lại, nó sẽ tiếp tục từ đó bằng cách sử dụng loại bài đăng tùy chỉnh mà chúng tôi đã xác định trong vòng lặp của mình Hãy xem cách nó hoạt động trong thực tế bằng cách lặp lại tiêu đề bài đăng theo đoạn mã trên như thế này add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }3 Bây giờ, nếu chúng tôi làm mới trang của mình trên giao diện người dùng của trang web, chúng tôi sẽ thấy tiêu đề 'Bài đăng 1' bên dưới các công thức nấu ăn gần đây của chúng tôi Điều này có ý nghĩa bởi vì chúng tôi đặt lại vòng lặp ban đầu bằng hàm if ( is_admin() ) return $posts;38 Bây giờ, hãy nhận xét if ( is_admin() ) return $posts;38 từ mã của bạn. Bạn sẽ nhận thấy rằng mã add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }30 sẽ lặp lại tiêu đề 'Công thức 1' thay vì 'Bài 1' Các loại bài đăng tùy chỉnh – Quản lý thêmĐể tùy chỉnh thêm hành vi và giao diện bài đăng tùy chỉnh của chúng tôi, chúng tôi sẽ xem xét một số tùy chọn có thể được thêm dưới dạng phần mở rộng cho mã mà chúng tôi đã sử dụng trong bài viết trước để đăng ký loại bài đăng 'công thức nấu ăn' của chúng tôi add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }7 Chúng tôi sẽ thêm một số đối số để
Thay đổi Slug URL loại bài đăng tùy chỉnhNếu chúng tôi tạo một bài đăng công thức và đặt tên là 'Công thức 1' thì URL mặc định của bài đăng 'Công thức 1' sẽ giống như add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }31 với điều kiện là các liên kết cố định được đặt thành 'Tên bài đăng' trong Cài đặt liên kết cố định của chúng tôi Nếu bạn muốn thay đổi cách Loại bài đăng tùy chỉnh Công thức xuất hiện trong URL, bạn có thể sử dụng đối số add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }32 với khóa add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }33 của nó Như chúng tôi đã nhận thấy từ URL, nếu đối số này bị bỏ qua, giá trị mặc định sẽ là nhãn 'công thức nấu ăn' của Loại bài đăng tùy chỉnh. Ví dụ: nếu chúng tôi muốn thay đổi điều này thành add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }34, chúng tôi phải ghi đè lên nó bằng cách chỉnh sửa đoạn mã của chúng tôi để trông như thế này if ( is_admin() ) return $posts;2 Bây giờ, nếu bạn lưu liên kết cố định (xóa bộ đệm ẩn liên kết cố định) và xem lại công thức của mình thì URL của bạn sẽ là add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }35 Lưu ý rằng nếu bạn thay đổi sên, bạn cũng sẽ phải thay đổi URL lưu trữ từ add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }36 thành add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }37 trong trang Menu chính Thay đổi vị trí của Custom Post Type MenuNếu bạn muốn di chuyển menu Recipes sang một vị trí khác, bạn có thể sử dụng đối số add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }38 như thế này if ( is_admin() ) return $posts;7 Các giá trị bạn có thể sử dụng cho đối số này là 0. ở trên cùng Ảnh chụp màn hình bên dưới hiển thị vị trí của menu khi giá trị 5 đã được thêm vào đối số add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }38 Thay đổi biểu tượng menu loại bài đăng tùy chỉnhHiện tại, menu Công thức sử dụng biểu tượng bài viết mặc định. Nó sẽ là một liên lạc tốt đẹp nó có biểu tượng độc đáo của riêng mình. Để thực hiện điều này, chúng ta có thể sử dụng đối số add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }70 if ( ! is_main_query() ) return $posts;0 Để hiển thị biểu tượng của riêng bạn, bạn có thể chèn URL đầy đủ của vị trí biểu tượng menu của mình (như được hiển thị trong mã ở trên) hoặc sử dụng bằng cách thêm tên lớp của biểu tượng. Bạn có thể xem các biểu tượng với các lớp tương ứng tại đây Ví dụ: nếu bạn chọn , bạn sẽ thêm nó vào mã của mình như thế này add_filter( 'the_posts', 'gowp_insert_recipes', 10, 2 ); function gowp_insert_recipes( $posts, $query ) { return $posts; }71 if ( ! is_main_query() ) return $posts;2 Kết quả cuối cùng sẽ là biểu tượng bạn chọn xuất hiện trong Menu Bài đăng tùy chỉnh của bạn… giúp làm cho Bài đăng tùy chỉnh của bạn cảm thấy thực sự tùy chỉnh Đọc thêmTạo loại bài đăng tùy chỉnh WordPress bằng plugin Phần kết luậnHy vọng rằng những mẹo này thực sự giúp ích cho bạn trong quá trình xây dựng Loại bài đăng tùy chỉnh của riêng mình và khi làm như vậy cho phép bạn cải thiện hơn nữa các chức năng và việc sử dụng trang web WordPress của mình. Như với tất cả mã hóa, tốt nhất bạn nên dành chút thời gian để chơi thử và xem mã mới của bạn tác động như thế nào đến trang web của bạn. Việc xây dựng trên những nền tảng này sau đó sẽ cho phép bạn giải quyết các dự án thậm chí phức tạp hơn, nơi cần phải tùy chỉnh nhiều Làm cách nào để sử dụng WP_Query trong WordPress?Cách sử dụng WP_Query . Bắt đầu với Vòng lặp tùy chỉnh. Một trong những cách tốt nhất để biết lệnh gọi WP_Query là thông qua Vòng lặp WordPress. . Tranh luận. Xương sống của các truy vấn tùy chỉnh trong WordPress. . Tham số trong WP_Query. Danh mục, Thẻ và hơn thế nữa. . Sửa đổi các đối tượng với các phương thức và thuộc tính Làm cách nào để tạo loại bài đăng tùy chỉnh trong WordPress theo chương trình?Hãy tìm hiểu sâu về từng bước sau. . Bước 1. Đăng ký Custom Post Type. . Bước 2. Thêm mảng nhãn, thêm giá trị vào mảng đối số. . Bước 3. Tạo phân loại tùy chỉnh. . Bước 4. Tạo mẫu loại bài đăng tùy chỉnh để hiển thị nội dung. . Bước 5. Xuất bản và thử nghiệm bài đăng tùy chỉnh Tôi có thể gán mẫu cho loại bài đăng tùy chỉnh không?Bạn có thể tạo mẫu cho các loại bài đăng tùy chỉnh theo hai cách. Chỉ sử dụng một. tệp php và tạo các phần mẫu cho từng loại tùy chỉnh . Cung cấp một CPT_SLUG đơn lẻ . |