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

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ố

  1. 	if ( is_admin() ) return $posts;
    0 – kết quả của truy vấn dưới dạng một mảng các đối tượng bài đăng
  2. 	if ( is_admin() ) return $posts;
    1 – phiên bản WP_Query
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ả

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

Tầm quan trọng của việc đặt lại vòng lặp

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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

Đ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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

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ố để

  1. Thay đổi sên URL của công thức Loại bài đăng tùy chỉnh
  2. Thay đổi vị trí menu quản trị Custom Post Type
  3. Thay đổi biểu tượng menu

Thay đổi Slug URL loại bài đăng tùy chỉnh

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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

Thay đổi vị trí của Custom Post Type Menu

Nế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
5. bên dưới Bài viết
10. bên dưới Phương tiện
15. bên dưới Liên kết
20. bên dưới Trang
25. bình luận bên dưới
60. bên dưới khoảng trống đầu tiên trong menu
65. Plugin bên dưới
70. bên dưới Người dùng
75. bên dưới Công cụ
80. bên dưới Cài đặt
100. bên dưới khoảng cách thứ hai trong menu

Ả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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

Thay đổi biểu tượng menu loại bài đăng tùy chỉnh

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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

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

Vòng lặp WordPress thông qua loại bài đăng tùy chỉnh

Đọc thêm

Tạo loại bài đăng tùy chỉnh WordPress bằng plugin
Tạo loại bài đăng tùy chỉnh WordPress theo cách thủ công
Tạo loại bài đăng tùy chỉnh WordPress bằng plugin của riêng bạn.

Phần kết luận

Hy 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ẻ .