Je cherchais une solution pour exclure l'image/la vignette en vedette dans chaque message. J'ai donc trouvé cet excellent morceau de code et l'a ajouté à functions.php. . Cela fonctionnait parfaitement, sauf pour une chose: cela rend le plugin Lightbox jQuery inutile.
La différence que je vois dans le code est la suivante. Avec le code:
<a href='http://site.com/wp-content/uploads/2012/01/main-image-2.jpg' title='main-image-2'><img width="150" height="150" src="http://gamebox.la/wp-content/uploads/2012/01/main-image-2-150x150.jpg" class="attachment-thumbnail" alt="main-image-2" title="main-image-2" /></a>
Sans pour autant:
<a href='http://site.com/wp-content/uploads/2012/01/main-image-2.jpg' title='main-image-2' rel="lightbox[170]"><img width="150" height="150" src="http://gamebox.la/wp-content/uploads/2012/01/main-image-2-150x150.jpg" class="attachment-thumbnail" alt="main-image-2" title="main-image-2" /></a>
Il semble que le filtre fasse quelque chose à la post_gallery qui fait que WP ne montre pas la partie Lightbox (rel = "lightbox []" manquant), mais je ne comprends pas pourquoi il le fait.
Code de référence dans functions.php à partir de ici :
function exclude_thumbnail_from_gallery($null, $attr)
{
if (!$thumbnail_ID = get_post_thumbnail_id())
return $null; // no point carrying on if no thumbnail ID
// temporarily remove the filter, otherwise endless loop!
remove_filter('post_gallery', 'exclude_thumbnail_from_gallery');
// pop in our excluded thumbnail
if (!isset($attr['exclude']) || empty($attr['exclude']))
$attr['exclude'] = array($thumbnail_ID);
elseif (is_array($attr['exclude']))
$attr['exclude'][] = $thumbnail_ID;
// now manually invoke the shortcode handler
$gallery = gallery_shortcode($attr);
// add the filter back
add_filter('post_gallery', 'exclude_thumbnail_from_gallery', 10, 2);
// return output to the calling instance of gallery_shortcode()
return $gallery;
}
add_filter('post_gallery', 'exclude_thumbnail_from_gallery', 10, 2);
Merci beaucoup d'avance!
UPDATE: J'ai trouvé ceci http://core.trac.wordpress.org/ticket/14130 il dit qu'il ajoute le filtre post_gallery_output mais je ne peux pas comprendre ce que je dois modifier dans le code actuel pour essayer une autre solution.
J'ai résolu cela en utilisant ce code
function exclude_thumbnail_from_gallery($null, $attr)
{
if (!$thumbnail_ID = get_post_thumbnail_id())
return $null; // no point carrying on if no thumbnail ID
// temporarily remove the filter, otherwise endless loop!
remove_filter('post_gallery', 'exclude_thumbnail_from_gallery');
// pop in our excluded thumbnail
if (!isset($attr['exclude']) || empty($attr['exclude']))
$attr['exclude'] = array($thumbnail_ID);
elseif (is_array($attr['exclude']))
$attr['exclude'][] = $thumbnail_ID;
// now manually invoke the shortcode handler
$gallery = gallery_shortcode($attr);
// add the filter back
add_filter('post_gallery', 'exclude_thumbnail_from_gallery', 10, 2);
// return output to the calling instance of gallery_shortcode()
return $gallery;
}
add_filter('post_gallery', 'exclude_thumbnail_from_gallery', 10, 2);
Ensuite, désinstallez le plug-in Lightbox for Galleries puis installez le jQuery Lightbox For Native Galleries .
Merci à tous pour vos suggestions et votre aide! :)