Page 1 sur 1
Fonction mailto en php
Posté : 21 déc. 2016, 19:41
par silencesim
Bonjour,
Sur mon site wordpress, je souhaiterai ajouter un bouton partage en shortcode.
Sur ma page function.php j'ai :
Code : Tout sélectionner
function fond_mon_shortcode( ) {
$code_html = "<a target='_blank' style='margin-right:15px;' href='mailto:?subject=Fonds De Dotation vol de nuits - <?php the_title(); ?>&body=Voici un projet du Fonds De Dotation vol de nuits <?php the_permalink(); ?>' rel='nofollow' data-title='Envoyer par mail' title='Envoyer par mail'>Partager</a>";
";
return $code_html;
}
add_shortcode( 'fondshortcode', 'fond_mon_shortcode' );
Sur ma page d'article j'ai mon shortcode :
[fondshortcode]
Mais cela ne marche pas. Le mail ne s’écrit, ni avec le lien , ni avec le titre de la page...
Il y a un truc que je fais mal, mais je n'arrive pas à savoir quoi.. Savez-vous ?
Merci
Re: Fonction mailto en php
Posté : 21 déc. 2016, 19:55
par mistel2
pourquoi tu fait pas des echo dans ta fonction et d'autre part tu déclare pas 'fondshortcode', 'fond_mon_shortcode' dans les () au début de ta fonction
function fond_mon_shortcode($valeur_1,$valeur_2 ) {
Re: Fonction mailto en php
Posté : 21 déc. 2016, 22:03
par or 1
il manque l'adresse email du destinataire dans :
href='mailto:?
après utiliser le protocole mailto n'est pas la meilleure façon d'envoyer un email depuis une page web.
Re: Fonction mailto en php
Posté : 22 déc. 2016, 10:13
par silencesim
En fait c'est pour un bouton "partager" par mail. C'est pour ça qu'il n'y a pas d'adresse mail...
fondshortcode est le pour le shortcode.
Quoi qu'il en soit, le bouton fonctionne, mais les elements en php dans mailto ne marche pas eux... <?php the_title(); ?> et <?php the_permalink(); ?> restent tel quel.
ps : sur mon code en haut il y a des
";
en trop entre
return $ code_html;
et
}
Re: Fonction mailto en php
Posté : 22 déc. 2016, 10:28
par Spols
tu est dans un code php, donc ouvrir ta balise php n'a aucun sens
function fond_mon_shortcode( ) {
return "<a target='_blank' style='margin-right:15px;' href='mailto:?subject=Fonds De Dotation vol de nuits - ".the_title()."&body=Voici un projet du Fonds De Dotation vol de nuits ".the_permalink()."' rel='nofollow' data-title='Envoyer par mail' title='Envoyer par mail'>Partager</a>";
}
add_shortcode( 'fondshortcode', 'fond_mon_shortcode' );
essaye ceci
Re: Fonction mailto en php
Posté : 22 déc. 2016, 10:36
par silencesim
ah oui pas bête pour php ...
Par contre ça ne marche pas .the_title(). et .the_permalink(). s'affiche sur la page et pas dans le mail.
Re: Fonction mailto en php
Posté : 22 déc. 2016, 12:28
par Spols
il existe bien une fonction the_title() et the_permalink() ?
essaye de récupèrer la valeur dans une variable avant le retour de ta fonction
Re: Fonction mailto en php
Posté : 22 déc. 2016, 12:39
par silencesim
comme ça ?
function fond_mon_shortcode( ) {
$the_title = the_title();
$the_permalink = the_permalink();
return $code_html = "<a target='_blank' style='margin-right:15px;' href='mailto:?subject=Fonds De Dotation vol de nuits - $the_title&body=Voici un projet du Fonds De Dotation vol de nuits $the_permalink rel='nofollow' data-title='Envoyer par mail' title='Envoyer par mail'>Partager</a>";
}
add_shortcode( 'fondshortcode', 'fond_mon_shortcode' );
Mais ça ne marche pas non plus.
Par ailleurs, les fonctions existent bien puisqu'elle s'affiche sur la page !
Mais pas dans le mail comme je le souhaiterai....
Re: Fonction mailto en php
Posté : 22 déc. 2016, 12:49
par Spols
Que donne l'html de ton bouton ?
il te manque un ' après $the_permalink
et le target='_blank' n'a pas de sens, le lien s'ouvrira quand même dans une nouvelle fenètre le ton client mail
Re: Fonction mailto en php
Posté : 22 déc. 2016, 13:00
par silencesim
le bouton donne ça en html :
<div class="uncont">Ladies Circlehttp://lefonddedotation/ladies-circle/<div class="uncode_text_column"><p></p>
<div class="sideTop">
<ul>
<li><a style="margin-right:15px;" href="mailto:?subject=Fonds De Dotation vol de nuits - &body=Voici un projet du Fonds De Dotation vol de nuits " rel="nofollow" data-title="Envoyer par mail" title="Envoyer par mail">Partager</a></li>
<li><a href="#" onclick="imprime();">Imprimer</a></li>
</ul>
</div>
<div class="sideMid">
<ul>
<li style="list-style-type: none;"><a href="http://37.110.194.148/wp-content/uploads/2016/12/Point-Rose.pdf" download="Dossier-Fond de dotation">Télécharger le dossier</a></li>
<li style="list-style-type: none;"><a href="http://pointrose.org/">Site internet</a></li>
</ul>
</div>
<p>
</p></div></div>
Re: Fonction mailto en php
Posté : 22 déc. 2016, 14:15
par Spols
il semble donc clair que tes fonctions ne retourne rien, peut être un probléme de portée ou de définition de fonction. je ne connais pas WP pour pouvoir continuer à t'aider
Re: Fonction mailto en php
Posté : 22 déc. 2016, 14:19
par silencesim
si la premiere ligne : <div class="uncont">Ladies Circlehttp://lefonddedotation/ladies-circle/<div class="uncode_text_column"><p></p>
Ladies Circle=the_title et
http://lefonddedotation/ladies-circle/= the_permalink
Re: Fonction mailto en php
Posté : 22 déc. 2016, 14:41
par Spols
mais à l'interieur de ta fonction fond_mon_shortcode( ), the_title() et the_permalink() ne sont pas définie c'est un problème de portée .
Re: Fonction mailto en php
Posté : 22 déc. 2016, 14:52
par Spols
2 autres pistes
utilise get_permalink() plutot que the_permalink() (idem pour title avec get_the_title()))
sur le site de wordpress, il indique que the_title() affiche le titre, donc la fonction ne retourne rien en gros pas besoin de faire
echo the_title();
the_title(); suffit
ou voit sur ce lien ce qui peut t'être utlie
http://stackoverflow.com/questions/3371 ... -shortcode
Re: Fonction mailto en php
Posté : 22 déc. 2016, 14:58
par silencesim
woupi
c'est donc ça !! merci spols
// shortcode
function fond_mon_shortcode( ) {
$the_title = get_the_title();
$the_permalink = get_permalink();
return $code_html = "<a style='margin-right:15px;' href='mailto:?subject=Fonds De Dotation vol de nuits - $the_title&body=Voici un projet du Fonds De Dotation vol de nuits $the_permalink' rel='nofollow' data-title='Envoyer par mail' title='Envoyer par mail'>Partager</a>";
}
add_shortcode( 'fondshortcode', 'fond_mon_shortcode' );