web-dev-qa-db-ja.com

ページ作成/新規ページ作成のユーザー機能

私は今日初めてRole and Capabilities APIを使用し、優れた Membersプラグイン を利用しています。しばらくの間、細心の注意を払っていましたが、 "ページの編集"機能には2つのことがあります。

  1. ユーザーに新しいページの作成を許可する
  2. ユーザーに既存のページの編集を許可する

私はこの機能を2つに分割しようとしています。私のユーザーには

  1. 新しいページを作成できない
  2. ユーザーに既存のページの編集を許可する

私はこれが起こることを可能にする私のテーマのためにいくつかのコードを書くことを探しています。非常に簡単に新しい機能を作成できます。それから課題はそれに応じてWordPressに対応させることです。

どんな考えでも感謝されるでしょう。

2
Scott

はい、これは確かに問題です。専用の 'create_posts'機能が計画されています。

http://core.trac.wordpress.org/ticket/16714

1
scribu

こんにちは私はしばらくこれを調査しています、次のハックを思い付きました。 wp-admin/new_post.phpで、wp_die行の後に次の行を追加します。

wp_die( __('Invalid post type') );
if ( !current_user_can( 'manage_options' ) and $post_type == 'page') {
    echo "To create new pages please ask site admin";
    exit;
} //if user is not admin, a warning is issued and script terminated

それからwp-admin/menuで、adminにadd pageサブメニューを表示するための条件を追加します。行は通常そこにありますが、ifステートメント内には含まれていません

if ( current_user_can( 'manage_options' )) { //if user is admin, show submenu for creating new pages, else no luck
   $submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), get_post_type_object( 'page' )->cap->create_posts, 'post-new.php?post_type=page' );
}

編集ページの[新規追加]ボタンを削除する方法はまだわかっていませんが、発行権限を持つユーザーは既存のページを編集できますが、新しいページを作成することはできません。新しいページボタンを押すと警告が表示され、先に進むことができません。投稿は影響を受けません。同じコードを簡単に適用して、わずかな編集で新しい投稿の作成を防ぐこともできます。

これが役立つことを願っています - Ackab

0
Ackab