web-dev-qa-db-fra.com

Vous cherchez à afficher des fichiers non-image dans Galerie avec un logo spécifique au type de fichier

Lorsque j'ai commencé à étudier la question, la galerie de fichiers m'a beaucoup rapproché de la résolution du problème. Le seul problème est que le plug-in affiche uniquement l'icône générique non-image lorsque je télécharge un fichier.

Est-ce que quelqu'un connaît un plugin préexistant qui fonctionnerait soit à côté de File Gallery soit à la place pour créer des logos spécifiques à un type de fichier (par exemple, je télécharge un fichier .doc puis le plugin affiche un logo MS Word).

À défaut d'un plug-in préexistant, quel serait le bon point de départ pour tenter de concevoir ma propre solution personnalisée?

Merci d'avance!

Remarque: ceci a été initialement publié sur le forum de support de wordpress.org ici , mais comme il n'a pas reçu de réponse, je pensais que je tenterais ma chance ici.

2
Dan

WordPress a une fonction native wp_mime_type_icon() dans wp-includes/post.php que vous pouvez utiliser.

Exemple de base:

// $attachment should be a full post object 

if ( wp_attachment_is_image( $attachment->ID ) )
{
    echo wp_get_attachment_image(
        $attachment->ID,
        array( 480, 900 ),
        FALSE,
        array ( 'class' => 'aligncenter' )
    );
}
else
{
    echo '<img src="' . wp_mime_type_icon( $attachment->post_mime_type ) . '">';
}

Recherchez dans wp-includes/images/crystal/ les icônes de type de fichier disponibles:

  • archiver
  • l'audio
  • code
  • default
  • document
  • interactif
  • tableur
  • texte
  • vidéo

enter image description here

Vous pouvez configurer votre propre répertoire d'images et filtrer 'icon_dir' pour le chemin d'accès local et 'icon_dir_uri' pour les URI afin de permettre à WordPress d'utiliser vos images.
Pour modifier uniquement les fichiers singuliers, filtrez 'wp_mime_type_icon':

apply_filters( 'wp_mime_type_icon', $icon, $mime, $post_id )
2
fuxia

Je ne pense pas que vous aurez de la chance de le faire fonctionner avec un autre plugin de galerie sans modifier ce code, mais vous pouvez le faire vous-même assez facilement en écrivant un plugin/fonction ou en utilisant une page de modèle.

Ce que vous pouvez faire est d'utiliser get_children pour récupérer le post_mime_type, dans votre cas, un exemple simple serait,

get_children( 'post_type=attachment&post_mime_type=doc' );
//assuming your using ms .doc files.

Une fois que vous avez le type mime, vous pouvez utiliser wp_get_attachment_link pour créer le lien. Malheureusement, ce paramètre function $icon est un booléen. Il ne vous permet donc pas d'ajouter votre propre icône. Vous devrez donc echopour afficher l'URL de l'icône souhaitée. utilisation.

http://codex.wordpress.org/Function_Reference/get_children
http://codex.wordpress.org/Function_Reference/wp_get_attachment_link
http://tgrayimages.com/automate-file-attachments-on-your-wordpress-posts/

0
Wyck