• 解決済 souyukiya

    (@souyukiya)


    お世話になります。

    ユーザの権限を設定するなどして、「既存の投稿記事の変更は可能だが、新規投稿は出来ないようにする」という方法はありますでしょうか。

    どうしてもWPに登録されている投稿記事「しか」ユーザには触らせたくないという要望がございまして、調査してみましたが「RokeManager」などのプラグインを入れて設定しても、上記要件は実現できませんでした。(投稿が変更出来る = 新規投稿もできる という設定にしかなりませんでした)

    どなたかご存知でしたら教えてください。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • もうちょっとしたら、うちのほうでも試してみますが(今日、ちょうど似たような作業をする予定だったので)

    edit posts はオフに
    edit published posts をオンに

    これではお望みの動作にはなりませんでしたか?

    トピック投稿者 souyukiya

    (@souyukiya)

    kvex 様

    ご返答ありがとうございます。
    edit postsをOffにした時点で、edit published postsのOnOffに関わらず「新規作成」はもとより、既存記事にアクセス出来なくなります(メニューが消える)

    遅くなりました。
    ほんとですね。確かに。
    なにかやりようがあるかな。

    User Role Editor で publish posts を外せばOKかと。

    orangemintさん>
    そういう考え方も一つですね。
    souyukiyaさん、新規投稿メニューは出てきますが、実際に公開はできないということです。

    うちだと、それはクライアントにも確認済みでNGだったのですが、souyukiyaさんのところではもしそれでOKなら良いですね。

    edit posts をオフにした場合、管理画面から投稿にアクセス出来ませんが、フロントエンドエディタが入っていれば、サイト側から編集は出来ます。

    管理画面のメニューの並びを変えたいと思い、admin menu editor というプラグインを入れたんですが、これの設定で、「新規追加」の Required capability を管理者とすると、投稿者権限でログインしたときに「投稿」のみ表示され、「新規追加」は表示されません。

    #管理者以外で[新規投稿]なメニュー/ボタンを削除する方法。

    テーマフォルダの functions.php (の <?php 〜 ?> の間)に以下を追加すれば OK◎

    // 管理メニューから[新規追加]を削除
    add_action( 'admin_menu', 'my_admin_menu' );
    function my_admin_menu() {
      global $submenu;
      if ( ! current_user_can( 'administrator' ) ) {
        foreach ($submenu as $parent => $sub) {
          foreach ($sub as $index => $data) {
            if ( 0 === strpos( $data[2], 'post-new.php' )
              || 0 === strpos( $data[2], 'media-new.php' )  // メディアも削除
            )
              unset( $submenu[$parent][$index] );
            }
         }
      }
    }
    // ヘッダのドロップダウンメニューから[新規投稿]を削除
    add_filter( 'favorite_actions', 'my_favorite_actions' );
    function my_favorite_actions( $actions ) {
      if ( ! current_user_can( 'administrator' ) ) {
        foreach ($actions as $key => $action) {
          if ( 0 === strpos( $key, 'post-new.php' )
            || 0 === strpos( $key, 'media-new.php' )  // メディアも削除
          )
          unset( $actions[$key] );
        }
      }
      return $actions;
    }
    // 投稿一覧ページの h2 横の[新規追加]ボタンを削除
    add_action( 'admin_print_footer_scripts', 'my_adminprint_footer_scripts', 90 );
    function my_adminprint_footer_scripts() {
      if ( ! current_user_can( 'administrator' ) )
        echo '
    <script type="text/javascript">
    //<![CDATA[
    jQuery(document).ready(function($){
      $( "h2>a.add-new-h2").remove();
    });
    //]]>
    </script>
    ';
    }

    トピック投稿者 souyukiya

    (@souyukiya)

    kvex 様

    ご連絡が遅れました。
    新規作成が可能だとゴミ記事を作られるのも面倒ですよね。

    なかなか細かいところで詰まってしまっております。
    情報ありがとうございます。

    トピック投稿者 souyukiya

    (@souyukiya)

    orangemint 様

    度重なり情報ご提供ありがとうございます。
    そのプラグインを試してみます。ありがとうございます。

    トピック投稿者 souyukiya

    (@souyukiya)

    Kz様

    なるほど根本を変えてしまう方法もありましたね。
    一度調べてみます。貴重な情報ありがとうございました。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「投稿の新規作成を禁止したい」には新たに返信することはできません。