functions.phpで管理者以外の場合のみ「クイック編集」を無効にする


11

これは私のfunctions.phpにあります

function remove_quick_edit( $actions ) {
    unset($actions['inline hide-if-no-js']);
    return $actions;
}
add_filter('post_row_actions','remove_quick_edit',10,1);

公開された投稿のリストをスクロールするときに、バックエンドのクイック編集リンクを削除します。

チャームのように機能しますが、管理者の役割でも無効にします。残りを無効にしながら、管理者のみに表示することは可能ですか?ありがとう!

jfacemyerのおかげで解決しました! これはfunctions.phpに追加する完全なコードです

function remove_quick_edit( $actions ) {
    unset($actions['inline hide-if-no-js']);
    return $actions;
}
if ( ! current_user_can('manage_options') ) {
    add_filter('post_row_actions','remove_quick_edit',10,1);
}

ユーザーロールエディタープラグインでこれができると思います。私が間違っている場合は、遠慮なく頭を殴ってください。
Jared Steffen 2013年

ユーザーロールプラグインによってサイトが不安定になったため、無効にする必要があり、将来このプロジェクトを複製する場合に備えて、functions.phpに必要な小さなコードをすべて追加して利用できるようにしました。残念ながら、管理者以外の場合にのみクイック編集を削除できません...
user27309

注意してください:概説したソリューションでは、一括操作の選択から「編集」が削除されません。それを行うには、次のコードスニペットを追加する必要がありますadd_filter( 'bulk_actions-edit-post', 'remove_from_bulk_actions' ); function remove_from_bulk_actions( $actions ){ unset( $actions[ 'edit' ] ); return $actions; }
Marco Panichi

回答:


9

呼び出しcurrent_user_canをラップするために使用しadd_filterます。

if ( current_user_can('manage_options') ) {
} else {
    add_filter('post_row_actions','remove_quick_edit',10,1);
}

manage_options管理機能です。現在のユーザーがそれを実行できる場合、彼は管理者です(通常のWPインストールの場合)。

見る:

http://codex.wordpress.org/Roles_and_Capabilities

そして

http://codex.wordpress.org/Function_Reference/current_user_can


それはここでは特に言及されていませんが、ためにhierarchicalポストの種類、あなたが使用する必要がありますpage_row_actions参照core.trac.wordpress.org/browser/tags/5.2.2/src/wp-admin/...
farinspace

8

次に、ページからクイック編集オプションを削除する場合のコードを示します。

function remove_quick_edit( $actions ) {
    unset($actions['inline hide-if-no-js']);
    return $actions;
}
if ( !current_user_can('manage_options') ) {
    add_filter('page_row_actions','remove_quick_edit',10,1);
    add_filter('post_row_actions','remove_quick_edit',10,1);
}

0

少なくともWP 4.3.1では、でロール名を使用できcurrent_user_can()ます。したがって、コードは次のようになります。

function remove_quick_edit( $actions ) {
  unset($actions['inline hide-if-no-js']);
  return $actions;
}
if ( !current_user_can('administrator') ) {
  add_filter('post_row_actions','remove_quick_edit',10,1);
}

よりクリーンで直感的に。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.