Quero listar imagens apenas para a imagem carregada pelo usuário. Aqui está o cenário:
- Usando o carregador de imagens no front-end usando iframe.
- Adicionei
upload_files
limite aos usuários no nível do assinante e quero que eles vejam apenas as imagens que foram enviadas. Encontrei este Q Restringindo usuários a visualizar apenas os itens da biblioteca de mídia que eles carregaram? mas a resposta aceita não está funcionando para mim.
// Code originally by @t31os add_action('pre_get_posts','users_own_attachments'); function users_own_attachments( $wp_query_obj ) { global $current_user, $pagenow; if( !is_a( $current_user, 'WP_User') ) return; if( 'upload.php' != $pagenow ) return; if( !current_user_can('delete_pages') ) $wp_query_obj->set('author', $current_user->id ); return; }
A página de front-end em que estou usando o carregador de imagens é denominada "Entrada".
- Se eu remover essa parte do código,
if( 'upload.php' != $pagenow ) return;
o código funcionará. Eu acho que tenho que melhorar essa parte do código condicional, mas não consegui descobrir. O condicional é importante porque eu não quero que o código seja aplicado em outras páginas onde não é necessário.
Então, preciso de ajuda para melhorar a parte condicional como mencionei. Obrigado!
media
media-library
pre-get-posts
Sisir
fonte
fonte
function
não alinhar com o conteúdo fn.Respostas:
Isso funciona para mim para listar os itens enviados por um usuário na biblioteca de mídia.
Isso permitirá que todos os usuários com a
manage_options
capacidade (geralmente admin) vejam todas as imagens, os outros usuários verão apenas suas próprias imagens. Note que algumas melhorias podem ser feitas como$pagenow
ecurrent_user_can
. Não é uma beleza, mas faz o trabalhofonte
wp_upload_dir()
resultado.O formulário de upload de mídia que eu estava acessando via thickbox era
media-upload.php
. Então, eu tive que mudar o condicional paraif( 'upload.php' != $pagenow && 'media-upload.php' != $pagenow)
. Eu esqueci de olhar para o lugar óbvio :)fonte