it-swarm-eu.dev

Přístup k aktuální adrese URL v textovém widgetu pro tlačítko Facebook Share?

Vytvářím"Sdílet tuto stránku"- widget, který potřebuje chytit aktuální adresu URL a přidat ji na adresu URL služby Facebook takto:

http://www.facebook.com/sharer.php?u=http://myurl.com/a-specific-page

Používám běžný textový widget. Jak mohu přistupovat k aktuální adrese URL a umístit ji do odkazu sdílení?

2
Rikard

@ user653 je správné, nemůžete to udělat v textovém widgetu s PHP, ale můžete to udělat v textovém widgetu pomocí JQuery / Javascript. Zde je návod.

Počínaje tlačítkem Facebook Share Button HTML

Předpokládám, že plánujete použít Facebook Share Button a tak bude ve vašem widgetu HTML kód, který bude vypadat takto?

<a name="fb_share"></a>
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share"
        type="text/javascript">
</script>

Použijte jQuery a Javascript's windows.location object.property

Pokud ano, můžete do svého widgetu stačí přidat celý následující kód:

<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>

Ujistěte se, že Enquue jQuery ve vašem functions.php souboru

Nicméně, aby výše uvedený kód fungoval, budete pravděpodobně muset zahrnout zahrnutý skript jQuery, který je součástí aplikace WordPress, a přidejte následující řádek kódu do functions.php tématu (pokud již nějaký jiný plugin nedělá):

wp_enqueue_script('jquery');

Facebook jako tlačítko jako WordPress Shortcode

Je ironií, že jsem implementoval Facebook Like Button jako Shortcode před pár dny pro klienta, takže jsem si myslel, že jsem také share s vámi (hříčka Můžete vidět, jak jsme dostali aktuální URL z proměnné $_SERVER. Tento přesný kód jsem odřezal z funkce redirect_canonical() v /wp-includes/canonical.php'. Můžete to také zahrnout do souboru functions.php motivu:

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}&amp;layout=button_count&amp;show_faces=false&amp;width=60&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21&amp;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;
}

Jak to vypadá

Zde je screenshot ukazující použití. Všimněte si, že protože textové widgety nespracovávají filtry obsahu tak krátký kód nefunguje v textovém widgetu. Díval jsem se rychle a nenalezl plugin, který přidává textové widgety, které mohou zpracovávat shortcodes, ale nebylo by těžké napsat jeden, nebo těžké napsat widget, který jen přidává Facebook Share nebo Like tlačítka jeden. FWIW.

WordPress Site Screenshot showing Facebook Like and Buttons as Shortcodes and in Text Widgets

Snad to pomůže!

3
MikeSchinkel

Stačí použít proměnné $ _SERVER:

$url = add_query_arg( 'u', $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"], 'http://www.facebook.com/sharer.php' );
2
Joe Hoyle

Obsah textového widgetu nelze dynamicky měnit. Získejte například "Spustitelný soubor PHP widget" (http://wordpress.org/extend/plugins/php-code-widget/). Nyní můžete přidat text atd. Včetně php kódu pro vložení proměnné adresy URL.

[upravit překlad] Ref http://developers.facebook.com/docs/reference/plugins/like . Dejte to do svéhophp kódu podporujícíhowidget:

  <?php global $post; ?>
<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink($post->ID)); ?>&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:60px;"></iframe>
1
Peter

Zde je úplný kód pro vás:

<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>
0
Mike Potter