web-dev-qa-db-fra.com

Définissez le type de lien par défaut sur "fichier" pour les galeries d'images

Chaque fois que vous ajoutez une galerie d'images à un article, les images sont automatiquement liées aux pages de pièces jointes. Ce n'est pas idéal, parce que je veux utiliser Fancybox afin que l'utilisateur puisse parcourir les images.

J'ai essayé le code suivant pour que les images soient liées aux fichiers par défaut, mais cela ne semble pas fonctionner pour les galeries. Des suggestions sur la manière de définir le type de lien par défaut sur "fichier" pour les galeries d'images?

Je serais encore plus heureux si la page en pièce jointe ne serait pas disponible du tout (sur des galeries d'images régulières). Je n'aime pas vraiment cette fonctionnalité.

/** 
 * Définir le type de lien d'image par défaut dans le fichier 
 */
 Function tp_set_default_link_type () {) fichier '); 
} 
 add_action (' after_switch_theme ',' tp_set_default_link_type '); 

Merci d'avance!

3
Sjoerd Boerrigter

Vous pouvez redéfinir l'attribut link de shortcode de la galerie avec:

add_filter( 'shortcode_atts_gallery',
    function( $out ){
        $out['link'] = 'file'; 
        return $out;
    }
);

Cela signifie que même si vos codes courts sont:

[gallery ids="1,2,3"]
[gallery ids="1,2,3" link="none"]

la sortie de la galerie sera toujours générée comme si vous utilisiez link="file".

6
birgire

Il existe maintenant (à partir de la version 4.0) une solution bien meilleure qui définit réellement l'option par défaut:

function my_gallery_default_type_set_link( $settings ) {
    $settings['galleryDefaults']['link'] = 'file';
    return $settings;
}
add_filter( 'media_view_settings', 'my_gallery_default_type_set_link');

view: Overide Gallery Lien par défaut aux paramètres

5
jmarceli

Basé sur birgire answer mais plus flexible et plus fixe

la sortie de la galerie sera toujours générée comme si vous utilisiez link = "file"

et toujours être capable d'utiliser link="none" par exemple

/**
 * Set default link type to “file” for image galleries when link isn't set
 */
add_filter( 'shortcode_atts_gallery',
    function( $out ){
        if( !array_key_exists('link', $out)
            || empty($out['link'])
          )
          $out['link'] = 'file';

        return $out;
    }
);
0
Antony Gibbs