2011-06-13 27 views
5


私はWordpressのでカスタムユーザータイプを追加した、カスタムポストタイプは、著者(下記参照)をサポートしています。カスタム・ユーザー・タイプは、「公開の記事」以外の著者のすべての権限を持っていますが、ポストに割り当てることができ作者のリストにではありません。ワードプレス:著者のボックスに表示されていないカスタムユーザーは

私は間違っていますか?

コード:

$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'); 

} 

は、より多くの情報が必要な場合、私に教えてください:

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 
     )); 
} 

、ここでは、カスタムポストタイプです。

+0

ユーザー権限がWP-adminに動作していますか?あなたがそれを期待する方法?...また、公開されたときに著者名を表示するためにカスタムテーマ/ウィジェットを使用していますか、それは間違った値を表示していますか?これが悲しいことに間違っている可能性があります= [ – PicoCreator

+0

あなたのコードスニペットから来るファイルも= P – PicoCreator

答えて

6

著者のドロップダウンメニューには、次の呼び出し作成されます。

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

who引数は、少なくとも「作者の役割を持つユーザーのみが表示されますことを意味し、the Codex pageは現在、それはだと言うのいずれかの「著者のか、空(すべてのユーザーを意味します)。 ありは、この機能ためのフィルタであるが、それは、入力としてHTMLをとります。ユーザーに対して新しいクエリを作成し、新しいHTMLドロップダウンを出力することができます。これが問題を解決する最初の方法です。

ただし、この機能は「誰そのレベルユーザー向けに「著者の検索に設定されたユーザレベルがずっと前に廃止されましたので、非常に奇妙である0ではありません。私はあなたがこの問題を解決するために、あなたの新しい役割に「LEVEL_1」機能を追加ことを推奨するTracの上a related bug reportを見つけました。これはクリーンな解決策ではありませんが、フィルタとすべてのHTMLを最初から作成するよりはるかに簡単です。

EDIT:第三、さらに簡単な解決策は、ちょうど私の心に来た:私は、プラグインとカスタムロールを作成したが、私は常に既存のロールからコピー機能だったし、それらを修正するため、この問題に気づいたことがありません。このようにして、あなたはどんな能力も忘れずに、このバグを修正します。

+1

+1 WPバグへのリンク –

+0

いいえ、レベル1の機能を追加しましたが、それは役に立たなかった。既存のロールからどのように機能をコピーできますか?私はそれを行うきちんとした方法を考えることができません。 – Sean

+0

以前に作成したカスタムロールを削除したことを確認します。これは、ロールがすでに存在する場合(つまり、 'if'が必要ない場合)、add_roleは何もしないためです。 http://wordpress.org/support/topic/creating-a-role-based-on-another?replies=2、そしてもう一つの例:とにかく、ここで私はそれをやった方法ですhttp://wordpress.org/support/トピック/ add-a-custom-role-based-default-role?の返信= 1 –

関連する問題