Je crée un "Partager cette page" - widget qui doit récupérer l'URL actuelle et ajoutez-le à une URL Facebook comme ceci:
http://www.facebook.com/sharer.php?u=http://myurl.com/a-specific-page
J'utilise un widget texte normal. Comment puis-je accéder à l'URL actuelle et la placer dans le lien de partage?
@ user653 est correct, vous ne pouvez pas le faire dans un widget texte avec PHP mais vous pouvez le faire dans un widget texte en utilisant JQuery /Javascript. Voici comment.
Je suppose que vous prévoyez d'utiliser le bouton de partage Facebook et que vous aurez ainsi du code HTML dans votre widget. ça va ressembler à ça?
<a name="fb_share"></a>
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share"
type="text/javascript">
</script>
Javascript's windows.location
object.propertySi oui, vous pouvez simplement ajouter tout le code suivant dans votre widget:
<script type="text/javascript">
jQuery(document).ready(function($) {
$("fb_share").attr("share_url") = encodeURIComponent(window.location);
});
</script>
<a name="fb_share"></a><script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript">
</script>
functions.php
de votre thème.Cependant, pour que le code ci-dessus fonctionne, vous devrez probablement mettre en file d'attente le script jQuery inclus avec WordPress, ajoutez la ligne de code suivante dans le functions.php
de votre thème (à moins qu'un autre plugin ne le fasse déjà):
wp_enqueue_script('jquery');
Ironiquement, j'ai implémenté un bouton Facebook Like en tant que Shortcode il y a quelques jours pour un client, je pensais donc que je partagerais aussi avec vous (jeu de mots voulu;;). Vous pouvez voir comment nous avons obtenu les informations actuelles. URL de la variable $_SERVER
. J'ai effacé ce code exact de la fonction redirect_canonical()
dans /wp-includes/canonical.php'
. Vous pouvez aussi simplement inclure ceci dans le fichier functions.php
de votre thème:
add_shortcode('facebook-like','my_facebook_like_button');
function my_facebook_like_button($echo=true) {
// Generate the HTML required to place a Facebook "Like" button inside a shortcode
// See Docs: http://developers.facebook.com/docs/reference/plugins/like
$requested_url = is_ssl() ? 'https://' : 'http://';
$requested_url .= $_SERVER['HTTP_Host'];
$requested_url .= $_SERVER['REQUEST_URI'];
$html =<<<HTML
<iframe src="http://www.facebook.com/plugins/like.php?href={$requested_url}&layout=button_count&show_faces=false&width=60&action=like&font=verdana&colorscheme=light&height=21&ref=blog"
scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:90px; height:25px"></iframe>
HTML;
if ($echo)
echo $html;
else
return $html;
}
Voici une capture d'écran montrant l'utilisation. Notez que puisque les widgets de texte ne traitent pas les filtres de contenu , le shortcode ne fonctionne donc pas dans un widget de texte. J'ai regardé rapidement et je n'ai pas trouvé de plug-in qui ajoute des widgets de texte pouvant traiter des codes abrégés, mais il ne serait pas difficile d'en écrire un, ou difficile d'écrire un widget qui ajoute simplement un bouton Facebook Partager ou un bouton J'aime. FWIW.
J'espère que cela t'aides!
Utilisez simplement les variables $ _SERVER:
$url = add_query_arg( 'u', $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"], 'http://www.facebook.com/sharer.php' );
Vous ne pouvez pas rendre le contenu d'un widget de texte aussi dynamique. Obtenez par exemple "Widget Executable PHP" (http://wordpress.org/extend/plugins/php-code-widget/). Maintenant, vous pouvez ajouter votre texte, etc., y compris le code php pour insérer la variable URL.
[edit] Réf http://developers.facebook.com/docs/reference/plugins/like . Mettez ceci dans votre code php supportant le widget :
<?php global $post; ?>
<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink($post->ID)); ?>&layout=standard&show_faces=false&width=450&action=like&colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:60px;"></iframe>
Voici un code complet pour vous:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<a href="http://Twitter.com/share" class="Twitter-share-button" data-url="" data-count="vertical" data-via="arkliapp">Tweet</a>
<script type="text/javascript" src="http://platform.Twitter.com/widgets.js"></script>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like id="fb_like" href="" layout="box_count" show_faces="true" width="55" font=""></fb:like>
<script type="text/javascript">
jQuery(document).ready(function($) {
$("#fb_like").attr("href") = encodeURIComponent(window.location);
$(".Twitter-share-button").attr("data-url") = encodeURLComponent(window.location);
});
</script>