web-dev-qa-db-fra.com

Comment ajouter une légende de données dans une balance d'ancrage

voici le code de galerie personnalisé.

function custom_gallery_shortcode( $attr = array(), $content = '' )

{

        $attr['itemtag']        = "li";
        $attr['icontag']        = "";
        $attr['captiontag']     = "p";

        // Run the native gallery shortcode callback:    
        $html = gallery_shortcode( $attr );
        // Remove all tags except a, img,li, p
        $html = strip_tags( $html, '<a><img><li><p>' );
        // Some trivial replacements:
        $from = array(  

            "class='gallery-item'", 
            "class='gallery-icon landscape'", 
            'class="attachment-thumbnail"',
            'a href=', 

        );              

        $to = array( 

            '',

            '',

            '', 

            'a data-caption="" class="ilightbox" href=', 

        );

        $html = str_replace( $from, $to, $html );

        // Remove width/height attributes:

        $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
        // Wrap the output in ul tags:

        $html = sprintf( '<ul class="gallery">%s</ul>', $html );

        return $html;

}



add_shortcode( 'gallery', 'custom_gallery_shortcode' );
add_filter( 'use_default_gallery_style', '__return_false' );

mais maintenant, je veux ajouter une légende dans un fichier. regarde mon code 'a data-caption="" class="ilightbox" href=', il data-caption = "légende de l'image que je veux ajouter" maintenant légende d'image en dehors d'un

comme ça

  • <a data-caption="" class="ilightbox" href="http://xxxxxxx.com/Snack-bar-1024x682.jpg"><img src="http:xxxxxxxxxx.com/Snack-bar-1024x682-150x150.jpg" alt="testing caption"></a>
    
                    <p class="wp-caption-text gallery-caption">
                    testing caption
                    </p></li>
    
  • 1
    Accore LTD

    Vous pouvez essayer ce code pour ajouter le nouvel attribut dans le code html:

    $dom = new DOMDocument();
    $dom->loadHTML($html);
    
    foreach ($dom->getElementsByTagName('a') as $item) {
    
        $item->setAttribute('data-caption', 'This is an anchor tag');
        echo $dom->saveHTML();
        exit;
    }
    
    1
    WisdmLabs