it-swarm-id.com

Mengakses URL Saat Ini di Widget Teks untuk Tombol Bagikan Facebook?

Saya membuat "Bagikan Halaman ini" - widget yang perlu ambil URL saat ini dan tambahkan ke URL Facebook seperti ini:

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

Saya menggunakan widget teks biasa. Bagaimana saya bisa mengakses URL saat ini dan memasukkannya ke dalam tautan berbagi?

2
Rikard

@ user653 benar, Anda tidak dapat melakukannya dalam widget teks dengan PHP tetapi Anda dapat melakukannya dalam widget teks menggunakan JQuery /Javascript. Begini caranya.

Dimulai dengan Facebook Tombol Bagikan HTML

Saya berasumsi Anda berencana untuk menggunakan menggunakan Tombol Bagikan Facebook dan dengan demikian akan memiliki kode HTML di widget Anda yang akan terlihat seperti ini?

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

Gunakan jQuery dan Javascript's windows.location object.property

Jika ya maka Anda dapat tambahkan saja semua kode berikut ke widget Anda:

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

Pastikan untuk Enqueue jQuery di File functions.php Tema Anda

Namun, agar kode di atas berfungsi, Anda mungkin perlu melakukan enqueue skrip jQuery yang disertakan yang dibundel dengan WordPress menambahkan baris kode berikut ke functions.php tema Anda (kecuali beberapa plugin lain sudah melakukannya):

wp_enqueue_script('jquery');

Tombol Facebook Like sebagai Shortcode WordPress

Ironisnya, saya menerapkan Tombol Suka Facebook sebagai Shortcode beberapa hari yang lalu untuk seorang klien jadi saya pikir saya juga akan berbagi dengan Anda (pun intended.;) Anda dapat melihat bagaimana kami mendapat arus URL dari variabel $_SERVER. Saya menggunakan kode persis ini dari fungsi redirect_canonical() di /wp-includes/canonical.php'. Anda juga bisa memasukkan ini ke dalam file functions.php tema Anda:

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

Seperti apa rupanya

Berikut screenshot yang menunjukkan penggunaan. Perhatikan bahwa karena widget teks tidak memproses filter konten sehingga kode pendek tidak berfungsi dalam widget teks. Saya melihat dengan cepat dan tidak menemukan plugin yang menambahkan widget teks yang dapat memproses kode pendek tetapi tidak akan sulit untuk menulisnya, atau sulit untuk menulis widget yang hanya menambahkan tombol Berbagi Facebook atau Suka juga. FWIW.

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

Semoga ini membantu!

3
MikeSchinkel

Cukup gunakan variabel $ _SERVER:

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

Anda tidak dapat membuat konten widget teks menjadi dinamis seperti itu. Dapatkan "Executable PHP widget" (http://wordpress.org/extend/plugins/php-code-widget/), misalnya. Sekarang Anda dapat menambahkan teks Anda dll termasuk kode php untuk memasukkan URL variabel.

[sunting] Ref http://developers.facebook.com/docs/reference/plugins/like . Masukkan ini ke widget kode php yang mendukung :

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

Berikut beberapa kode lengkap untuk Anda:

<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