2011-06-13 21 views
5


Ben Wordpress bir özel kullanıcı türü ekledik, özel yayın türü Yazarlar (aşağıya bakınız) destekler. Özel kullanıcı türü, bir yazarın 'yayınları yayınla' hariç tüm ayrıcalıklarına sahiptir, ancak yazara atamak için olası yazarların listesinde değil olur.WordPress: Yazar kutusunda Görünmüyor Özel Kullanıcılar

Neyi yanlış yapıyorum?

Kodu:

$args = array(
    'labels' => $labels, 
    'public' => true, 
    'publicly_queryable' => true, 
    'show_ui' => true, 
    'query_var' => true, 
    'rewrite' => true, 
    'capability_type' => 'post', 
    'hierarchical' => true, 
    'menu_position' => 0, 
    'supports' => array('title', 'editor', 'thumbnail', 'page-attributes', 'author') 
); 

if (!post_type_exists('ent')) { 
    register_post_type('ent', $args); 
    remove_post_type_support('ent', 'editor'); 

} 

daha fazla bilgiye ihtiyaç olursa haber verin: Burada

if (!get_role('member')) { 
     add_role('member', 'SFUK Member', array(
      'delete_posts' => true, 
      'edit_posts' => true, 
      'read' => true, 
      'upload_files' => true, 
      'edit_published_posts' => true, 
      'delete_published_posts' => true 
     )); 
} 

ve

özel yayın türüdür.

+0

Kullanıcı ayrıcalıkları wp-admin'de çalışıyor mu? Bunu beklediğiniz gibi ... Ayrıca yayınlandığında yazar adını göstermek için özel bir tema/widget kullanıyor musunuz ?, yanlış bir değer mi yoksa boş mu gösteriliyor? Ne yazık ki bu yanlış yapılmış olabilir yolları bir sürü vardır = [ – PicoCreator

+0

Ayrıca kod snippet'leriniz WP hatası – PicoCreator

cevap

6

Yazarlar açılır şu çağrıyı oluşturulur:

wp_dropdown_users(array(
    'who' => 'authors', 
    'name' => 'post_author_override', 
    'selected' => empty($post->ID) ? $user_ID : $post->post_author, 
    'include_selected' => true 
)); 

who argüman, en azından 'yazar' rolü olan kullanıcılar listelenir anlamına gelir ve the Codex page şu anda olduğunu söylüyor ya 'yazarlar' veya boş (tüm kullanıcılar). Bu işlev için bir filtre var, ancak HTML'yi giriş olarak alıyor. Kullanıcılar için yeni bir sorgu oluşturabilir ve ardından yeni bir HTML açılır menüsü çıktı alabilirsiniz. Bu, probleminizi çözmenin ilk yolu. Bununla birlikte, bu işlev, "yazarlar" olarak ayarlanan "kim" ile, kullanıcı seviyeleri uzun zaman önce kullanımdan kaldırıldığından, düzeyi 0 olan kullanıcılar için yapılan aramaları oldukça garip arar. Trac'de a related bug report numaralı telefonu buldum. Bu sorunu gidermek için bir 'level_1' yeteneği eklemeniz önerilir. Bu temiz bir çözüm değil, bir filtre ve tüm HTML'yi sıfırdan oluşturmaktan çok daha kolay.

DÜZENLEME: Üçüncü ve daha da basit bir çözüm sadece aklıma gelen: Ben eklentileri ile özel roller oluşturmuştur ama her zaman kopyalama Mevcut rolleri gelen yetenekleri ve daha sonra bunları değiştirerek çünkü bu sorunu fark hiç. Bu sayede herhangi bir yeteneği unutmayacaksınız ve bu hatayı da düzeltecektir.

+1

+1 gelen dosyalar Tamam, bir level_1 yeteneği ekledim, ama yardımcı olmadı . Yetenekleri mevcut bir rolden nasıl kopyalayabilirim. Bunu yapmak için düzgün bir yol düşünemiyorum. –

+0

için bağlantı için p = p – Sean

+0

Önceden oluşturulan özel rolü kaldırdığınızdan emin olun, çünkü eğer role zaten sahipse add_role hiçbir şey yapmaz (bu nedenle 'if' gerekmez). Her neyse, işte böyle yaptım: http://wordpress.org/support/topic/creating-a-role-based-on-another?replies=2 ve başka bir örnek: http://wordpress.org/support/ topic/add-a-custom-role-based-on-default-role? yanıtları = 1 –

İlgili konular