管理者として、私はWordPress 3.5メディアマネージャの機能をとても気に入っています。
ただし、マルチユーザーサイトでは、アップロードされているかどうかにかかわらず、すべてのユーザーがメディアライブラリ内のすべての画像を見ることができます。以前のfunctions.php
スクリプトは、アクセスをマスクまたは制限することができました。
例えば:
// Hide Media Library tab Tab from each individual agent
function remove_medialibrary_tab($tabs) {
if ( !current_user_can( 'update_core' ) ) {
unset($tabs['library']);
return $tabs;
} }
add_filter('media_upload_tabs','remove_medialibrary_tab');
私はメディアライブラリがJavaScriptベースになったと信じているので、これはもはや機能しません。
質問: ///////////////// - 内に画像をアップロードしなかったユーザーからどうやってWordPress 3.5メディアライブラリの画像を隠したり隠したりできますか?自分の画像だけを見たり、この特定の投稿やページにアップロードした画像だけを見たりしたいと思います。
現在の構造とデザインは、ユーザーの組織全体で画像を共有したい新聞のようなものには最適ですが、独立したマルチユーザーアクセスでより厳格な制御が必要なサイトにはそれほど良くありません。
私はコーダーではありません - あるいはせいぜいアマチュアです - しかしオプションには次のものが含まれるかもしれません。または - 管理者が一般ユーザー用のメディアライブラリ画像の表示/非表示を切り替えることができるようにするスイッチ。
これに関する任意のガイダンスまたは方向は認められます。
現在のユーザーに自分のアップロードされた添付ファイルのみを表示させるには、テーマのアクションに次のコードを追加します。
add_filter( 'posts_where', 'devplus_wpquery_where' );
function devplus_wpquery_where( $where ){
global $current_user;
if( is_user_logged_in() ){
// logged in user, but are we viewing the library?
if( isset( $_POST['action'] ) && ( $_POST['action'] == 'query-attachments' ) ){
// here you can add some extra logic if you'd want to.
$where .= ' AND post_author='.$current_user->data->ID;
}
}
return $where;
}
お役に立てれば!
@timocouckuytさん、ありがとうございます。これはうまくいきますが/wp-admin/upload.phpリンクにも必要です。
add_filter('pre_get_posts', 'hide_posts_media_by_other');
function hide_posts_media_by_other($query) {
global $pagenow;
if( 'upload.php' != $pagenow || !$query->is_admin ){
return $query;
}
if( !current_user_can( 'manage_options' ) ) {
global $user_ID;
$query->set('author', $user_ID );
}
return $query;
}
他のユーザーからメディアや投稿を隠すための完全なチュートリアルについては、このチュートリアルをチェックしてください: http://jeffreycarandang.com/tutorials/hide-wordpress-posts-media-uploaded-users/
歓声、phpbits