Permettez-moi de commencer par dire que je fais habituellement beaucoup de recherches avant de demander publiquement de l'aide - en raison de la probabilité que des informations soient déjà sur le Web - bien que j'aie fait plusieurs jours de recherche, etc. Je suis toujours dans l'angoisse ...
J'utilise Wordpress avec le plugin Advanced Custom Fields - j'ai pu lui faire montrer l'image sur ma page d'accueil en utilisant un simple code HTML
<img src="[acf field='image' post_id=''. $post_id .'']" />
Où j'ai créé un champ personnalisé appelé "image". Maintenant Je veux créer un shortcode pour afficher ce lien si possible? J'ai traversé beaucoup de possibilités telles que;
J'ai essayé cela aussi;
<?php
function my_shortcode() {
$output = '';
$output.= '<img src="[acf field='image' post_id=''. $post_id .'']" />';
return $output;
}
N'a pas pris ... alors je suis allé pour le dernier que j'ai pu trouver sur le web;
function my_shortcode() {
ob_start();
?> <HTML> <img src="[acf field='image' post_id=''. $post_id .'']" /> <?php
return ob_get_clean();
}
Ce qui a abouti à quelque chose comme ça sur mon site - résultat
Je suis vraiment hors de ma profondeur ici les gars ... Je serais vraiment heureux si quelqu'un serait prêt à m'aider un peu!
Merci d'avance!
Vous devez utiliser do_shortcode()
pour exécuter des codes courts dans votre chaîne
Le code complet devrait être comme ça
<?php
function my_shortcode( $atts ) {
$atts = shortcode_atts( array(
'post_id' => '', // Default value.
), $atts );
$output = '[acf field="image" post_id="' . $atts['post_id'] . '"]';
$output = do_shortcode( $output );
$output = '<img src="' . $output . '" />';
return $output;
}
add_shortcode('my_link', 'my_shortcode');
Usage:
[my_link post_id="xxx"]
où xxx est l'identifiant du message requis.