Je crée un thème pour un client et l'une de leurs demandes consiste à autoriser les utilisateurs à télécharger des images pour leur propre usage, mais il peut exister une option de partage des images.
Voici quelques mises en garde:
Premièrement, est-ce possible et est-il possible de créer une taxonomie "tag" pour les images?
Merci de votre aide.
La médiathèque contient des mises à jour majeures de la version à venir. Vous pouvez voir les modifications apportées aux diapositives de Daryl Koopersmith ici . Vous pouvez lisez l'annonce et la discussion sur "Make" .
Votre demande de "tags/catégories" est déjà intégrée à la version 3.5.
La différence entre les thèmes et les plugins est assez simple: affichage ou fonctionnalité. Je suggère donc de ne pas intégrer de telles fonctionnalités dans un thème, mais de les séparer en tant que plugin. Votre avantage à faire cela: vous/votre client ne perdriez pas cette fonctionnalité lors d'une mise à jour ou d'un changement de thème Cela vous simplifie simplement la vie. Imaginez que vous ayez un autre client qui demande cela. Ensuite, il vous suffirait de télécharger votre plug-in existant au lieu de l'extraire de votre thème et de le déplacer dans le prochain thème.
Comme Kaiser l'a mentionné, dans la prochaine version de WordPress, la médiathèque utilise une interface utilisateur plus proche de l'interface posts/pages.
Étant donné que la médiathèque est essentiellement un CPT appelé "pièce jointe", vous pouvez commenter, publier des méta et affecter des taxonomies au type de publication "pièce jointe".
3.4.2 supporte tout cela, mais ne montrera pas l'interface utilisateur des taxonomies pour les types de média. 3,5 fait.
Donc, le marquage est fait.
Pour tout montrer aux administrateurs et donner aux utilisateurs individuels leurs propres médiathèques? Vous devrez les filtrer en fonction de l'auteur, en utilisant un filtre pre_get_posts qui ne s'exécute que dans le backend, et si l'utilisateur n'est pas administrateur du rôle ou supérieur, et uniquement si la requête recherche des publications de type 'pièce jointe. '.
Ce Q & A montre comment limiter les publications qu'un rôle d'utilisateur peut voir dans le tableau de bord. Il manquait la pièce jointe, qui est la suivante:
add_filter( 'pre_get_posts', 'wpse_72278_current_author_media' );
add_filter( 'views_upload', 'wpse_72278_custom_view_count', 10, 1 );
function wpse_72278_current_author_media( $query )
{
global $pagenow, $user_ID;
if( 'upload.php' !== $pagenow )
return $query;
if ( $query->is_admin && current_user_can( 'editor' ) )
$query->set( 'author', $user_ID );
return $query;
}
function wpse_72278_custom_view_count( $views )
{
global $user_ID, $wpdb;
if ( !current_user_can('editor') )
return $views;
$total = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts
WHERE post_author = '$user_ID'
AND post_type = 'attachment' " );
$image = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts
WHERE post_author = '$user_ID'
AND post_mime_type LIKE 'image/%' " );
$video = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts
WHERE post_author = '$user_ID'
AND post_mime_type LIKE 'video/%' " );
$detached = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts
WHERE post_author = '$user_ID'
AND post_type = 'attachment' AND post_parent = '0' " );
$views['all'] = preg_replace( '/\(.+\)/U', '('.$total.')', $views['all'] );
$views['image'] = preg_replace( '/\(.+\)/U', '('.$image.')', $views['image'] );
$views['video'] = preg_replace( '/\(.+\)/U', '('.$video.')', $views['video'] );
$views['detached'] = preg_replace( '/\(.+\)/U', '('.$detached.')', $views['detached'] );
return $views;
}
Cet autre s'occupe de la publication d'un article appartenant à un auteur et du téléchargement effectué par un autre.
Et si vous ne sautez pas encore dans la version 3.5, ce dernier gère les champs personnalisés pour les pièces jointes.