Nasıl wordpress kullanıcı rolleri ayırt etmek?

3 Cevap php

Ben aboneleri ne görebilirsiniz içerik sınırlamak için çalışıyorum ama yapacak hiçbir şey iş gibi görünüyor. Ben boşuna, tüm web trol saat geçirdim ve wordpress kodu ile gelmiştir. Herkes bu konuda gitmek mümkün olacağını nasıl biliyor mu?

İdeal kod yapısı gibi görünecektir:

if(get_role() = 'subscriber'){
    redirect
}

Teşekkürler

Bu arada i get_role denedim ($ rolü) ve bu benim için çalışmıyor.

3 Cevap

Bunun için current_user_can kullandım. Burada rolleri ve yetenekleri bir liste var:

http://codex.wordpress.org/Roles_and_Capabilities#Capabilities:_5

"Abone" seviyesinden herkes Mesajınızı düzenleyebilirsiniz beri Yani, sen açıkladık gereksinimi karşılamak için bir yol olacaktır:

if (!current_user_can('edit_posts')){

//redirect, error, etc as you like

}

update: sen ve yapamayacağı ne kullanıcı bulmak için kullanabileceğiniz current_user_can(capability) bir fonksiyon var. Ben başka bir rol veya özelliği eklemek gerekir ki hayal ediyorum.

aşağıdakileri deneyin:

if ('subscriber' == get_role()) {
    # do whatever
}

= assignment
== comparison

Wordpress çok iyi içerik erişim sınırlamalarını yapmaz. Bu sadece sisteme yerleşik değil. Izinleri işin en oluşturmak ve düzenlemek kimin kontrol etmeyi, ancak öncelikli tasarım prensibi herkes görünümü sağlamaktır. Bu bir blog uygulaması için mantıklı, ama koşullu erişim gerekir kullanıcı türleri varsa bu sınırlayıcı olabilir.

Sen çok sorun olmadan abone rol ekleyebilirsiniz, ancak daha sonra döngü mesajları yönlendirmek veya gizlemek ya render kodunun sürü kanca eklemek gerekecek. Dev eserin en az miktarda döngü içinde kullanıcının rolünü kontrol ve onlar göremiyorum ne gizlemektir. Bunun dezavantajı boş sayfalara yakın render sona erebilir olduğunu.