8797 sujets

Développement web côté serveur, CMS

Bonjour,
je suis en train de créer un shortcode pour récupérer la variable 'site' de mon site internet créer avec wordpress.

Voici ma fonction :


function website_shortcode_handler($atts, $content=null){

return '<span>' . get_post_meta($post->ID, '_site', true) . '</span><br />';

}

add_shortcode( 'website', 'website_shortcode_handler' );


Problème, il ne la récupére pas. Alors que quand je mets le code direct sur la page :

<span><?php echo get_post_meta($post->ID, '_site', true); ?></span> 


Cela fonctionne.

J'ai du me louper quelque part, mais je ne vois pas où

Merci pour votre aide
Salut,

Je ne connait pas wordpress, mais je dirai que tu a oublié un echo quelque part, peut être ici:


echo add_shortcode( 'website', 'website_shortcode_handler' );

Modifié par JJK801 (11 Jun 2012 - 11:35)
JJK801 a écrit :
Salut,

Je ne connait pas wordpress, mais je dirai que tu a oublié un echo quelque part, peut être ici:


echo add_shortcode( 'website', 'website_shortcode_handler' );


cela ne fonctionne pas
Je pense qu'il te manque
global $post

Dans ta fonction.

Edit: ouai bon j'arrive un peu tard...
Modifié par Yvan L. (11 Jun 2012 - 11:41)
jb_gfx a écrit :
T'as oublié de passer $post-&gt;ID à ta fonction website_shortcode_handler().


OK, mais comment dois je faire, je suis pas trop un expert php ?
merci par avance
jb_gfx a écrit :

function website_shortcode_handler($post_id, $atts, $content=null)


Ou tu fais comme Yvan t'a dit.


j'ai fait ca,

function website_shortcode_handler($post_id, $atts, $content=null) {

return '<span>' . get_post_meta($post->ID, '_site', true) . '</span><br />';

}

echo add_shortcode( 'website', 'website_shortcode_handler' );


Mais toujours rien.

function website_shortcode_handler($post_id){

return '<span>' . get_post_meta($post_id, '_site', true) . '</span><br />';

}

echo website_shortcode_handler($post->ID);
jb_gfx a écrit :

function website_shortcode_handler($post_id){

return '<span> ' . get_post_meta($post_id, '_site', true) . '</span> ';

}

echo website_shortcode_handler($post-&gt;ID);


Cette fonction marche, mais elle m'affiche mon shortcode [WEBSITE] en front et pas le contenu du shortcode (qui est dans get_post_meta site)
Modifié par dreadstock (11 Jun 2012 - 12:11)
tu ne doit pas passer par une fonction get_shortcode ou un truc du genre?

Edith: Je spécule! je n'ai jamais ne serai ce qu'approcher un wordpress, donc les fonctions interne...
Modifié par JJK801 (11 Jun 2012 - 12:22)
J'ai tenté de contourner le problème en créant une fonction.
Mais toujours rien :

function website_shortcode_handler($atts, $content=null) {
$meta_site = get_post_meta($post->ID, '_site', true);

return '<span>' . $meta_site .'</span><br />';

}

add_shortcode( 'website', 'website_shortcode_handler' );


C'est le Echo que je ne sais pas mettre dans cette fonction.