WordPress : Lier l’image en vedette à la publication
J’ai un site WordPress sur le thème des enfants à l’adresse http://mrme.me/utahcountyhiking, et j’essaie de l’obtenir de sorte que lorsque vous cliquez sur l’image en vedette, il aille à la publication associée. À l’heure actuelle, il va à la page média de l’image en vedette au lieu de la publication.
Ce que j’ai essayé
-
J’ai trouvé comment faire en sorte que le thème enfant charge du JavaScript, mais le JS était exécuté avant que le PHP n’ajoute du contenu à la page, donc je n’ai pas pu changer les choses avec JS.
-
J’ai essayé d’ajouter ces fonctions PHP à mon fichier functions.php de thèmes enfants, mais cela n’a rien changé.
Modifier : L’image sélectionnée est définie avec la fonction WordPress wp_get_attachment_link() qui renvoie le code HTML contenant une image liée à la page de pièce jointe de l’image.
Le code qui définit l’image sélectionnée est
<?php
if(get_post_thumbnail_id(get_the_ID())) {
$besty_featured_image = wp_get_attachment_link( get_post_thumbnail_id(get_the_ID()), 'besty-thumbnail', true );
echo $besty_featured_image;
}
?>
<a href="<?php echo esc_url( get_permalink() ); ?>" class="blog-title"><?php the_title();?></a>
Solution n°1 trouvée
En partant de la réponse de Brad, j’ai pu le réparer en utilisant le code suivant dans le fichier index.html du thème
<div class="post-box article">
<a href="<?php echo esc_url( get_permalink() ); ?>" class="blog-title">
<?php the_post_thumbnail( 'post-thumbnail', array( 'alt' => get_the_title() ) ); ?>
<div class="myTitleClass"><?php echo the_title(); ?></div>
</a>
</div>
Je me rends compte qu’il aurait été préférable d’utiliser le thème enfant au lieu d’éditer le fichier directement, mais cela fonctionnera assez bien pour le moment.
Solution n°2 trouvée
La personnalisation des thèmes est hors sujet, mais les thèmes par défaut sont exemptés, alors regardons un exemple de la façon dont cela se fait dans Twenty Fifteen.
if ( ! function_exists( 'twentyfifteen_post_thumbnail' ) ) :
function twentyfifteen_post_thumbnail() {
if ( post_password_required() || is_attachment() || ! has_post_thumbnail() ) {
return;
}
if ( is_singular() ) :
?>
<div class="post-thumbnail">
<?php the_post_thumbnail(); ?>
</div><!-- .post-thumbnail -->
<?php else : ?>
<a class="post-thumbnail" href="<?php the_permalink(); ?>" aria-hidden="true">
<?php
the_post_thumbnail( 'post-thumbnail', array( 'alt' => get_the_title() ) );
?>
</a>
<?php endif; // End is_singular()
}
endif;
Vous pouvez voir que cette ligne inclut the_permalink
et tout est enveloppé dans la <a>
balise qui relie la vignette de la publication au permalien de la publication.
<a class="post-thumbnail" href="<?php the_permalink(); ?>" aria-hidden="true">
0 commentaire