Tôi muốn kiểm tra trường tùy chỉnh trong một trang web chứa tên phân loại từ các bài đăng tùy chỉnh. Vì vậy, tôi có thể nhập phân loại vào trường ACF ở đầu mỗi trang web và vòng lặp sẽ xuất ra tất cả các bài đăng trong phân loại đó mà tôi đã nhập. Nhưng có vẻ như nó không hoạt động và kỹ năng mã hóa của tôi rất kém…
“categorie_eintragen” là trường ACF phân loại của tôi cho các trang web, tôi đã thêm các nguyên tắc phân loại này trước đây trong loại bài đăng tùy chỉnh của mình “touren”
Đây là mã của tôi từ mẫu trang
'touren',
'posts_per_page' => -1,
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'ASC',
'tax_query' => array[
array[
'taxonomy' => 'kategorie_eintragen',
'terms' => $kategorie,
]
]
]];
if[ $posts ]: ?>
Làm cách nào để tôi tạo truy vấn vòng lặp cho các loại bài đăng tùy chỉnh này chỉ trong phạm vi phân loại mà tôi đã cung cấp cho anh ấy trên trang web hiện tại?
Cho đến giờ trong loạt bài này, bạn đã học cách cấu trúc của
346 cũng như các thuộc tính và phương thức của nó. Bây giờ chúng ta đang xem xét các đối số khác nhau mà bạn có thể sử dụng với
346 và cách bạn mã hóa chúng
346 có một số lượng lớn các đối số có thể, khiến nó cực kỳ linh hoạt. Vì bạn có thể sử dụng nó để truy vấn bất kỳ thứ gì có trong bảng
349 của mình, nên nó có các đối số cho mọi hoán vị của truy vấn mà bạn có thể muốn chạy trên nội dung của mình
Trong hướng dẫn này, tôi sẽ xem xét các đối số để truy vấn các thuật ngữ phân loại
Bản tóm tắt về cách thức hoạt động của các đối số trong 3
46
Trước khi bắt đầu, chúng ta hãy tóm tắt nhanh về cách hoạt động của các đối số trong
346. Khi bạn viết mã
346 trong chủ đề hoặc plugin của mình, bạn cần bao gồm bốn yếu tố chính
- các đối số cho truy vấn, sử dụng các tham số sẽ được đề cập trong hướng dẫn này
- bản thân truy vấn
- vòng lặp
- kết thúc. đóng thẻ
3
53 và3
54 và đặt lại dữ liệu bài đăng
Trong thực tế, điều này sẽ trông giống như sau
30
31
32
3
34
35
36
37
38
39
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
30
31
32
33
34
35
36
37
38
39
340
341
342
343
Các đối số cho WordPress biết dữ liệu nào cần tìm nạp từ cơ sở dữ liệu và đó là những đối số mà tôi sẽ đề cập ở đây. Vì vậy, tất cả những gì chúng ta đang tập trung ở đây là phần đầu tiên của mã
30______14
32
36
3
38
Như bạn có thể thấy, các đối số được chứa trong một mảng. Bạn sẽ học cách viết mã chúng khi bạn làm việc thông qua hướng dẫn này
Mã hóa đối số của bạn
Có một cách cụ thể để mã hóa các đối số trong mảng, như sau
30______14
32
353
3
355
35
357
37
38
Bạn phải đặt các tham số và giá trị của chúng trong dấu ngoặc đơn, sử dụng
355 giữa chúng và phân tách chúng bằng dấu phẩy. Nếu bạn hiểu sai, WordPress có thể không thêm tất cả các đối số của bạn vào truy vấn hoặc bạn có thể nhận được màn hình trắng
Các tham số phân loại
Đặt tham số cho thuật ngữ phân loại phức tạp hơn một chút so với danh mục và thẻ vì bạn sử dụng
356. Trong đối số này, bạn viết một mảng đối số lồng nhau để chỉ định phân loại và thuật ngữ sử dụng các tham số này
3
57 [chuỗi]. phân loại học3
58 [chuỗi]. chọn thuật ngữ phân loại theo [3
59 [mặc định],3
60 hoặc3
61]3
62 [int/chuỗi/mảng]. [các] thuật ngữ phân loại3
63 [boolean]. có hay không bao gồm trẻ em cho phân loại phân cấp. Mặc định là true3
64 [chuỗi]. nhà điều hành để kiểm tra. Các giá trị có thể là3
65 [mặc định],3
66,3
67,3
68 và3
69
Thực tế là bạn có tham số
364 có nghĩa là bạn không cần phải chọn một trong số các đối số có sẵn để xác định xem bạn đang bao gồm hay loại trừ các cụm từ [như bạn làm đối với thẻ và danh mục], nhưng có thể sử dụng
356 cho mọi thứ
Nếu bạn muốn truy vấn nhiều nguyên tắc phân loại, bạn cũng có thể sử dụng tham số
372 trước tất cả các mảng của mình [một cho mỗi nguyên tắc phân loại] với
373 hoặc
374 để chỉ định xem bạn muốn tìm bài đăng có tất cả các điều khoản hay bất kỳ điều khoản nào trong số chúng
Điều này được giải thích dễ dàng nhất với một số ví dụ
Truy vấn cho một thuật ngữ phân loại
Đây là kịch bản đơn giản nhất và chỉ cần sử dụng một mảng lồng nhau
30__
34
32
363
3
365
35
367
37
369
39
371
310
373
312
375
314
38
Các truy vấn trên cho các bài đăng có thuật ngữ
375 trong phân loại
376. Lưu ý rằng bạn cũng cần sử dụng tham số
358 để xác định trường bạn đang sử dụng để xác định thuật ngữ, trừ khi bạn đang sử dụng ID thuật ngữ là mặc định. Nếu bạn muốn sử dụng thuật ngữ ID, bạn sẽ sử dụng một cái gì đó như thế này
30_______14
32
363
3
365
35
367
37
387
39
373
310
375
312
38
Việc sử dụng ID khiến bạn khó xác định truy vấn của mình đang tìm kiếm gì vào một ngày sau đó, nhưng nó sẽ tránh được mọi sự cố tiềm ẩn nếu bạn cho rằng người dùng của mình có thể chỉnh sửa thuật ngữ sên.
Truy vấn nhiều thuật ngữ trong một nguyên tắc phân loại
Nếu bạn muốn xác định các bài đăng có một hoặc nhiều mảng thuật ngữ trong cùng một phân loại, bạn vẫn viết một mảng lồng nhau, nhưng thêm một mảng thuật ngữ
Ví dụ: để truy vấn các bài đăng có bất kỳ danh sách ID thuật ngữ nào từ phân loại của bạn, bạn sử dụng
30______14
32
363
3
365
35
3101
37
3103
39
373
310
375
312
38
Nhưng nếu bạn muốn truy vấn các bài đăng với tất cả các điều khoản này thì sao?
30_______14
32
363
3
365
35
3101
37
3119
39
3121
310
373
312
375
314
38
Lưu ý rằng ví dụ đầu tiên thực sự sử dụng toán tử
379 để tìm các bài đăng có bất kỳ thuật ngữ nào, nhưng vì đây là mặc định nên bạn không cần phải chỉ định nó trong đối số của mình
Một tình huống khác là nếu bạn muốn truy vấn các bài đăng không có bất kỳ mảng thuật ngữ nào trong một nguyên tắc phân loại, bạn sẽ làm như thế này
30__
34
32
363
3
365
35
3101
37
3119
39
3139
310
373
312
375
314
38
Ở đây, tôi đã thay thế toán tử
373 bằng
381, có nghĩa là WordPress sẽ tìm các bài đăng không có bất kỳ thuật ngữ nào trong mảng
Lưu ý rằng nếu bạn muốn sử dụng slug thay vì ID thuật ngữ, bạn có thể làm như vậy với bất kỳ tình huống nào trong số này. Ví dụ cuối cùng sẽ trông như thế này
30_______14
32
363
3
365
35
3101
37
369
39
3157
310
3139
312
373
314
375
315
38
Truy vấn thuật ngữ từ nhiều nguyên tắc phân loại
Nếu bạn muốn làm việc với nhiều phân loại, bạn sẽ cần tạo nhiều hơn một mảng. Hãy xem ví dụ đơn giản nhất, để truy vấn các bài đăng với một thuật ngữ từ phân loại danh mục và một thuật ngữ từ phân loại thẻ
_______10_______14
32
363
3
3171
35
365
37
367
39
369
310
3179
312
3181
314
365
315
3101
317
369
319
318_______120_____2718142
Ở đây tôi đã viết hai mảng lồng nhau. một cho mỗi phân loại, sử dụng các đối số giống như tôi đã làm cho các ví dụ chỉ sử dụng một phân loại. Tôi đã đặt trước những điều này với đối số
372. Bạn cần bao gồm đối số
372 để báo cho WordPress biết liệu nó đang tìm kiếm tất cả hay một số bài đăng xuất ra theo từng mảng. Điều này hoạt động như sau
- Nếu bạn sử dụng
3
84, WordPress sẽ tìm nạp các bài đăng được chỉ định trong mảng đầu tiên và mảng thứ hai. Vì vậy, trong ví dụ trên, chỉ những bài đăng có cả sên3
75 trong3
76 và sên3
87 trong3
88 mới được truy vấn - Nếu bạn sử dụng
3
89, WordPress sẽ tìm nạp đầu ra bài viết theo mảng đầu tiên hoặc mảng thứ hai. Vì vậy, trong trường hợp này, bạn sẽ nhận được các bài đăng có sên3
75 hoặc sên3
87 [hoặc cả hai]
Đây là mã bạn sẽ sử dụng nếu bạn đang tìm kiếm các bài đăng bằng một trong hai con sên
30
34
32
363
3
3201
35
365
37
367
39
369
310
3179
312
3181
314
365
315
3101
317
369
319
318_______120_____27182
Bạn cũng có thể tìm kiếm nhiều thuật ngữ trong một phân loại nhất định bằng cách thêm nó vào mảng
30__
34
32
363
3
3201
35
365
37
367
39
369
310
3239
312
3181
314
365
315
3101
317
369
319
32_____49
320_____27182
Bằng cách kết hợp đối số
372 với các truy vấn và cũng sử dụng đối số
364, bạn có thể tạo các truy vấn tinh vi. Các đối số bên dưới sẽ truy vấn các bài đăng có thuật ngữ từ một phân loại nhưng không có thuật ngữ từ phân loại khác
30
34
32
3259
3
363
35
3171
37
365
39
367
310
369
312
3271
314
3139
315
3181
317
365
319
3101
320
369
322
3283
324
3121
325
373
327
375
328
38
Lưu ý rằng tôi đã sử dụng
384 tại đây. nếu tôi sử dụng
374, nó sẽ truy vấn các bài đăng có
396 và các bài đăng không có
397, thay vì các bài đăng có
396 nhưng không có
397, đó là thứ tôi đang tìm kiếm
Bạn có thể hình dung được điều này xa hơn để truy vấn các điều khoản của nguyên tắc phân loại của bạn theo cách bạn muốn. sử dụng đối số
364 trong cả hai truy vấn lồng nhau hoặc thêm một truy vấn lồng bổ sung vào cụm từ truy vấn trong phân loại khác
Truy vấn phân loại lồng nhau
Bạn có thể tạo các truy vấn phân loại lồng nhau để tạo các bộ lọc phức tạp hơn nhiều để lấy bài đăng của mình. Hỗ trợ cho các nguyên tắc phân loại lồng nhau đã được thêm vào lõi WordPress trong phiên bản 4. 1. Nó phức tạp hơn rất nhiều hoặc hoàn toàn không thể có được kết quả tương tự sớm hơn
30
3293
32
3295
3
3297
35
3299
37
301
39
303
310
305
312
307
314
3299
315
311
317
313
319
315
320
317
322
319
324
321
325
313
327
325
328
317
30
329
31
331
33
333
34
335
36
337
37
339
Truy vấn trên sẽ chọn các bài đăng theo phân loại
376 với sên
3402 hoặc các bài đăng có sên
375 bên dưới
376 và có tổ hợp sên
3405,
3406 bên dưới
388
Lưu ý về Đối số 3
408
Bạn có thể thắc mắc tại sao tôi không đưa vào đối số
3409, trong đó bạn chỉ cần viết đối số của mình như sau
30____14
32
343
3
38
Bạn có thể quen với cách truy vấn các nguyên tắc phân loại này nếu bạn đã thực hiện nó trước đây, nhưng hiện tại nó không còn được dùng nữa và bạn không nên sử dụng nó. Vì vậy, hãy gắn bó với
356. Dù sao thì việc sử dụng
356 cũng giúp bạn linh hoạt hơn rất nhiều
Tóm lược
Truy vấn các nguyên tắc phân loại phức tạp hơn một chút so với các danh mục và thẻ, vì bạn cần nắm bắt được đối số
356
Tuy nhiên, như chúng ta đã thấy, đây là một đối số rất mạnh giúp bạn có nhiều phạm vi và tính linh hoạt để truy vấn cơ sở dữ liệu của mình theo bất kỳ cách nào bạn muốn
Bài đăng này đã được cập nhật với sự đóng góp từ Nitish Kumar. Nitish là nhà phát triển web có kinh nghiệm tạo trang web Thương mại điện tử trên nhiều nền tảng khác nhau. Anh ấy dành thời gian rảnh của mình để thực hiện các dự án cá nhân giúp cuộc sống hàng ngày của anh ấy dễ dàng hơn hoặc đi dạo buổi tối dài với bạn bè