Cách ép người dùng chỉ đăng trong category con cuối cùng

Có bạn inbox hỏi tôi về cách làm thế nào ép người dùng chỉ được đăng vào category con cuối cùng chứ không được đăng vào các category cha, mình xin chia sẻ giải pháp nằm trong chính core của WordPress, giải pháp này cho các trang cho phép người dùng đăng bài viết như trang có cộng tác viên hay diễn đàn.

Trước hết bạn hãy tạo một page, một shortcode để làm trang đăng bài cho thành viên, trên đó cho phép chọn category như bình thường, các bạn dùng code sau để kiểm tra:

function is_category_children($catID) {
$arg = array(
'child_of' => $catID,
'hide_empty' => 0
);
if (get_categories($arg))
return false;
return true;
}

Ta chỉ cần dùng hàm get_categories mặc định trong core và tìm các con của nó là được, nếu không còn đứa con nào thì nó là út, và người dùng chỉ được phép đăng vào đây.

Nếu các bạn đang cho thành viên vào trong admin để đăng thì cần hạn chế bằng cách add action vào save_post để kiểm tra, nếu post này không nằm trong category cuối cùng thì die() không lưu nữa.

Chúc các bạn thành công !

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *