web-dev-qa-db-fra.com

Numérotation des images dans la galerie

Lors de l'ajout d'images dans un article avec le shortcode de galerie, je souhaite afficher un numéro d'image en tant que titre de l'image, par exemple s'il y a 3 images dans une galerie et affichées sous forme de liste, chaque image doit être précédée d'un numéro de série.

Montré comme enter image description here

Je peux le régler ensuite avec les CSS en ligne. J'ai essayé beaucoup dans media.php, mais sans succès.

2
busyjax

Définissez une fonction personnalisée entre le gestionnaire de shortcode de la galerie et la sortie. Attrapez les éléments img et ajoutez un compteur statique. Renvoyez ensuite la sortie de la galerie à WordPress.

Exemple de code:

add_action( 'after_setup_theme', 'wpse_74492_replace_gallery_shortcode' );

/**
 * Replace the default shortcode handlers.
 *
 * @return void
 */
function wpse_74492_replace_gallery_shortcode()
{
    remove_shortcode( 'gallery' );
    add_shortcode( 'gallery', 'wpse_74492_gallery_shortcode' );
}

function wpse_74492_gallery_shortcode( $attr )
{
    // Let WordPress create the regular gallery …
    $gallery = gallery_shortcode( $attr );

    $gallery = preg_replace_callback( '~<img~', 'wpse_74492_gallery_callback', $gallery );

    return $gallery;
}

function wpse_74492_gallery_callback( $matches )
{
    static $count = 0;
    $count += 1;

    return "<span class='gallery-number'>$count</span>" . $matches[0];
}

Cela insérera un <span class='gallery-number'>1</span> dans le lien. Vous pouvez le positionner en CSS avec:

.gallery-number 
{
    position: absolute;
    left:0;
    top: 1em;
}
1
fuxia