Khi bắt đầu wp_insert_post
, chức năng lưu / cập nhật một bài đăng, có một bộ lọc được gọi wp_insert_post_empty_content
. Theo mặc định, bộ lọc này kiểm tra xem các trường tiêu đề, trình soạn thảo và đoạn trích có trống không, trong trường hợp đó, quá trình lưu sẽ bị tạm dừng.
Tuy nhiên, vì tất cả các trường được lưu được chuyển đến bộ lọc này, bạn có thể mở rộng bộ lọc này để bao gồm bất kỳ thử nghiệm nào khác để xác định xem bài đăng có nên được coi là trống không. Nó sẽ là một cái gì đó như thế này:
add_filter ('wp_insert_post_empty_content','wpse312975_check_unique_url',10,2);
function wpse312975_check_unique_url ($maybe_empty, $postarr) {
// extract custom field from $postarr, check uniqueness
if ($unique) return false else return true;
}
Lưu ý: chức năng phải trả về 'true' để tạm dừng quá trình lưu.
Nếu trường tùy chỉnh không phải là duy nhất, bạn cũng có thể muốn lặp lại cảnh báo.
132_url
nơi132
là bài ID. Hơn bạn luôn có một giá trị duy nhất ở đây. Bên cạnh đó: Các trường tùy chỉnh nên được lưu trongsave_post
hành động. Trong hành động này, bạn có thể kiểm tra trường tùy chỉnh (nếu nó không trống và có một giá trị duy nhất chẳng hạn), và dựa trên điều nàyupdate_post_meta
hay không. Tôi đoán bạn cũng có thể kiểm tra các lĩnh vực tùy chỉnh và nếu nó không có giá trị duy nhất, thiết lậppost-status
đểdraft
hay cái gì khác, để xuất bản vô hiệu hóa. Nếu không, tôi nghĩ rằng bạn cần jQuery để làm điều này.