it-swarm-vi.tech

Truy cập URL hiện tại trong Tiện ích văn bản cho nút chia sẻ Facebook?

Tôi đang tạo một "Chia sẻ trang này" - tiện ích cần lấy URL hiện tại và nối nó vào một URL Facebook như thế này:

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

Tôi đang sử dụng một widget văn bản thông thường. Làm cách nào tôi có thể truy cập URL hiện tại và đưa nó vào liên kết chia sẻ?

2
Rikard

@ user653 là chính xác, bạn không thể làm điều đó trong một tiện ích văn bản với PHP nhưng bạn có thể làm điều đó trong một tiện ích văn bản bằng cách sử dụng JQuery /Javascript. Đây là cách.

Bắt đầu với nút chia sẻ Facebook HTML

Tôi giả sử bạn dự định sử dụng Nút chia sẻ Facebook và do đó sẽ có mã HTML trong tiện ích của bạn Điều đó sẽ trông như thế này?

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

Sử dụng jQuery và Javascript's windows.location object.property

Nếu có thì bạn có thể chỉ cần thêm tất cả các mã sau vào tiện ích của bạn:

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

Hãy chắc chắn Enqueue jQuery trong Tệp functions.php của Chủ đề của bạn

Tuy nhiên, để đoạn mã trên hoạt động, có lẽ bạn sẽ cần phải ghi lại tập lệnh jQuery đi kèm với WordPress, thêm dòng mã sau vào chủ đề của bạn functions.php (trừ khi một số plugin khác đã làm như vậy):

wp_enqueue_script('jquery');

Nút Like trên Facebook dưới dạng WordPress Shortcode

Trớ trêu thay, tôi đã triển khai một nút Nút Like trên Facebook dưới dạng một Shortcode một vài ngày trước cho một khách hàng vì vậy tôi nghĩ tôi cũng chia sẻ với bạn (ý định chơi chữ .;) Bạn có thể thấy cách chúng tôi có được hiện tại URL từ biến $_SERVER. Tôi đã quàng mã chính xác này từ hàm redirect_canonical() trong /wp-includes/canonical.php'. Bạn cũng có thể đưa phần này vào tệp functions.php của chủ đề:

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

Nó trông như thế nào

Đây là một ảnh chụp màn hình cho thấy việc sử dụng. Lưu ý rằng vì các widget văn bản không xử lý các bộ lọc nội dung nên shortcode không hoạt động trong một widget văn bản. Tôi đã xem nhanh và không tìm thấy plugin nào thêm tiện ích văn bản có thể xử lý mã ngắn nhưng sẽ không khó để viết hoặc khó viết tiện ích chỉ thêm nút Chia sẻ hoặc Thích trên Facebook. FWIW.

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

Hi vọng điêu nay co ich!

3
MikeSchinkel

Chỉ cần sử dụng các biến $ _SERVER:

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

Bạn không thể làm cho nội dung của tiện ích văn bản động như thế. Lấy "tiện ích thực thi PHP" (ví dụ: http://wordpress.org/extend/plugins/php-code-widget/). Bây giờ bạn có thể thêm văn bản của mình, v.v. bao gồm mã php để chèn URL biến.

[sửa] Tham chiếu http://developers.facebook.com/docs/reference/plugins/like . Đặt cái này vào widget php code hỗ trợ của bạn:

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

Đây là một số mã hoàn chỉnh cho bạn:

<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