Làm cách nào để sử dụng WP_query với một khóa và giá trị meta?

Tôi có một wp_query và các bài đăng sẽ có nhiều khóa meta giống nhau; . Vấn đề là điều này không hoạt động. Tôi vẫn nhận được các bài đăng có khóa meta có id người dùng trong đó. Về cơ bản họ đã bình chọn rồi đừng cho họ xem bài nữa

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
6

Trong bài đăng này, tôi giả sử rằng bạn đã có kiến ​​thức cơ bản về cách làm việc với lớp WP_Query trong WordPress. Trước khi bắt đầu, tôi muốn cho bạn xem một số ví dụ rất đơn giản. Các ví dụ tương tự bạn có thể tìm thấy trong WordPress Codex

Như bạn đã biết, tất cả các bài đăng đều có siêu dữ liệu mà bạn có thể điền vào trong hộp dữ liệu “Trường tùy chỉnh” [nhân tiện, hộp dữ liệu này có thể bị ẩn]. Vì vậy, ví dụ: nếu bạn muốn nhận một bài đăng có khóa meta

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
8 và giá trị meta
$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
9, bạn có thể thực hiện theo cách sau

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on'
];
 
$rd_query = new WP_Query[ $rd_args ];

Mặt khác, nếu bạn cần truy vấn tất cả các bài đăng ngoại trừ những bài có cặp khóa và giá trị meta này, bạn có thể sử dụng các tham số sau

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];

Đừng quên rằng tất cả các ví dụ trong bài đăng này đều được đơn giản hóa, vì vậy, một số tham số WP_Query bị thiếu, e. g 

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
0 hoặc 
// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
1

Nếu bạn quan tâm đến các giá trị thông số 

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
2 khác, vui lòng xem phần mô tả thông số "so sánh" bên dưới vì cả hai giá trị này đều chấp nhận các giá trị giống nhau

Đây là ví dụ rất rất đơn giản, chỉ là phần giới thiệu. Nhưng bài đăng này là về tham số _______43. Tham số này cho phép chúng tôi tạo các bộ lọc bài đăng và tập lệnh tìm kiếm thực sự thú vị

Truy vấn bài đăng theo giá trị meta

Ví dụ đơn giản bên dưới cho phép bạn lấy tất cả các bài đăng có giá trị trường tùy chỉnh cụ thể. Hãy lấy tất cả các bài đăng có tên trường tùy chỉnh là “màu sắc” và giá trị trường tùy chỉnh 

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
4

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];

Nếu bạn xem trang chỉnh sửa bài đăng [trong khu vực quản trị] trong bất kỳ bài đăng nào phù hợp với truy vấn, bạn sẽ thấy phần sau trong phần “Trường tùy chỉnh”

Hãy làm điều ngược lại – nhận tất cả các bài đăng trừ những bài có khóa meta “màu” và giá trị meta

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
4

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
1

Nhận bài viết theo nhiều giá trị meta

Bây giờ, hãy lấy tất cả các bài đăng có giá trị trường tùy chỉnh 

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
4 HOẶC 
// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
7 “màu”

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
4

Nhận tất cả các bài đăng [ví dụ: sản phẩm trong cửa hàng trực tuyến] ngoại trừ sản phẩm màu trắng và sản phẩm màu xanh lá cây

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
5

Cách sử dụng “so sánh” trong meta_query

Như bạn có thể thấy trong ví dụ bên dưới và trong các ví dụ khác nữa, có một tham số 

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
8 trong mỗi ví dụ. Bây giờ tôi muốn chỉ ra những giá trị nào nó có thể chấp nhận và ý nghĩa của chúng

  • // the meta_key 'color' with the meta_value 'white'
    $rd_args = array[
    	'meta_query' => array[
    		array[
    			'key' => 'color',
    			'value' => 'white'
    		]
    	]
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    9 [hoặc không được đặt] Bằng,
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    10 – Không bằng,
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    11 – Nhỏ hơn,
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    12 – Nhỏ hơn hoặc bằng,
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    13 – Lớn hơn,
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    14 – Lớn hơn hoặc bằng, ví dụ

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on'
];
 
$rd_query = new WP_Query[ $rd_args ];
3

  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    15 – Cho phép tìm kiếm trong các giá trị meta cho một chuỗi cụ thể, trong ví dụ bên dưới, truy vấn trả về tất cả các bài đăng trong đó tên “first_name” chứa 
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    16, nó cũng có thể là 
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    17, 
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    18, 
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    19

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on'
];
 
$rd_query = new WP_Query[ $rd_args ];
9

  • Hai điều nữa. thứ nhất – không phân biệt chữ hoa chữ thường, thứ hai – ký hiệu đại diện
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    40 không cần thiết
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    41 – tương tự như 
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    15 chỉ hoạt động theo cách ngược lại – giá trị meta không được chứa chuỗi đã cho
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    43 – giá trị meta của bài đăng phải chứa một trong các giá trị của mảng đã cho, bạn có thể xem ví dụ ở trên
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    44 – giá trị meta không được chứa BẤT KỲ giá trị nào trong mảng đã cho
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    45 – giá trị meta của bài đăng phải nằm trong phạm vi giá trị đã cho, ví dụ

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
6

  • Nó cũng có thể hoạt động cho các ngày, hãy kiểm tra ví dụ bên dưới cũng vậy
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    46 – không nằm trong một phạm vi nhất định
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    47 [WordPress >= 3. 5] – Nếu giá trị meta của một khóa meta cụ thể tồn tại hoặc trống / null

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
9

  • Vì vậy, trên thực tế, nó kiểm tra xem có tồn tại khóa meta hay không, bạn thậm chí không phải chuyển bất kỳ giá trị nào với tham số này
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    48 [WordPress >= 3. 5] – nếu một khóa meta đã cho hoàn toàn không tồn tại
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    49 [WordPress >= 3. 7] – nó cho phép bạn so sánh các giá trị meta với biểu thức chính quy, ví dụ

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
0

  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    50 [WordPress >= 3. 7] – Tương tự như 
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    49 nhưng giá trị meta không được khớp với biểu thức chính quy đã cho của bạn
  • $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    52 [WordPress >= 3. 7] – nó là từ đồng nghĩa với 
    $rd_args = array[
    	'meta_key' => 'show_on_homepage',
    	'meta_value' => 'on',
    	'meta_compare' => '!='
    ];
     
    $rd_query = new WP_Query[ $rd_args ];
    49

Cách sử dụng “so sánh => giữa” cho Ngày trong meta_query

Bạn cũng có thể sử dụng 

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
3 để kiểm tra xem trường tùy chỉnh có nằm giữa hai ngày không

Điều quan trọng nhất mà bạn phải ghi nhớ là định dạng ngày của bạn phải giống như 

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
55 hoặc 
$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
56 hoặc đại loại như thế [năm đi trước, rồi đến tháng, rồi đến ngày, rồi đến giờ nếu bạn cũng cần]. Kiểm tra xem nó được lưu trữ như thế nào trong cơ sở dữ liệu – nếu nó được lưu trữ ở định dạng khác, ví dụ như ngày bắt đầu trước, thì tính năng lọc sẽ không hoạt động cho bạn cho đến khi bạn thay đổi ngày hiện diện trong cơ sở dữ liệu

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
1

Nếu ngày được lưu trữ trong thời gian UNIX, ví dụ.

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
57, mọi thứ trở nên siêu đơn giản

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
2

Nhiều truy vấn meta – nhận bài đăng theo nhiều cặp khóa và giá trị

Bây giờ tôi sẽ chỉ cho bạn cách kết hợp các bài đăng theo một số [hai hoặc nhiều] giá trị trường tùy chỉnh. Trước hết, hãy để tôi giới thiệu với bạn thông số ________ 158 có thể chấp nhận hai giá trị – ________ 159 hoặc 

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on'
];
 
$rd_query = new WP_Query[ $rd_args ];
30 [mặc định]

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
3

Như bạn có thể thấy, trong 

// the meta_key 'color' with the meta_value 'white'
$rd_args = array[
	'meta_query' => array[
		array[
			'key' => 'color',
			'value' => 'white'
		]
	]
];
 
$rd_query = new WP_Query[ $rd_args ];
3 ở trên, chúng tôi đã sử dụng nhiều 
$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
58

Cách sắp xếp bài đăng theo giá trị meta [“orderby” và “order” tham số]

Tôi sẽ chỉ cho bạn các ví dụ khác nhau về cách bạn có thể sắp xếp các bài đăng của mình theo giá trị meta. Trước hết, hãy xem mẫu mã đơn giản này, nơi chúng tôi thậm chí không sử dụng truy vấn meta

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
4

Bây giờ, giả sử rằng 

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on'
];
 
$rd_query = new WP_Query[ $rd_args ];
33 chỉ chứa các giá trị số, chúng ta có thể thay đổi mã của mình cho trường hợp đó một chút

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
5

Nhưng làm thế nào để sử dụng nó cùng với truy vấn meta?

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
6

Cách đặt hàng bằng hai hoặc nhiều khóa Meta

Vâng, điều đó cũng có thể kể từ WordPress 4. 2

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on',
	'meta_compare' => '!='
];
 
$rd_query = new WP_Query[ $rd_args ];
7

Vì vậy, trước hết, chúng tôi sắp xếp các bài đăng theo thứ tự 

$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on'
];
 
$rd_query = new WP_Query[ $rd_args ];
34 tăng dần và sau đó chúng tôi sắp xếp thứ tự các bài đăng theo thứ tự 
$rd_args = array[
	'meta_key' => 'show_on_homepage',
	'meta_value' => 'on'
];
 
$rd_query = new WP_Query[ $rd_args ];
35 giảm dần

# WordPress

Misha Rudrastyh

Chào các bạn và chào mừng đến với trang web của tôi. Trong hơn 10 năm, tôi đã cố gắng hết sức để chia sẻ miễn phí với bạn một số hướng dẫn và mẹo tuyệt vời về WordPress

Chủ Đề