web-dev-qa-db-fra.com

syntaxe php - comment concaténer correctement - echo bloginfo ('stylesheet_directory)

Cela me conduit batty. Est-ce que ma syntaxe est fausse? Pourquoi le premier "." dans mon appel img src en jetant une erreur? Cela fonctionne si je mets un lien dur dans l'appel img src, FYI.

    <a class="blog-image" href="<?php the_permalink(); ?>">
        <?php if (has_post_thumbnail() ) { 
            the_post_thumbnail('medium-size');
        } else {
            echo '<img src="' . bloginfo('stylesheet_directory'); . '/img/ogpimage.png" alt="Blog Posts Placeholder">';
        } ?>
    </a>
1
website walrus
  1. bloginfo() fait déjà un echo. Il sera imprimé avant tout le reste de votre déclaration echo. Utilisez get_bloginfo() à la place.

  2. stylesheet_directory est l'un de ces arguments où il est préférable d'utiliser simplement la fonction appelée par WordPress: get_stylesheet_directory_uri(). Il est plus facile à comprendre, en particulier dans ce cas où l’on pourrait s’attendre à un chemin en regardant le nom de la chaîne d’argument.

  3. Si vous utilisez une URL fournie par une fonction WordPress, l'échappez-la . Toujours.

  4. Pour une meilleure lisibilité, j’utiliserais printf() ici.

Résumé

printf( 
    '<img src="%s/img/ogpimage.png" alt="Blog Posts Placeholder">',
    esc_url( get_stylesheet_directory_uri() )
);
3
fuxia