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ẻ?
@ 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.
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>
Javascript's windows.location
object.propertyNế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>
functions.php
của Chủ đề của bạnTuy 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');
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}&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;
}
Đâ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.
Hi vọng điêu nay co ich!
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' );
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)); ?>&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>
Đâ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>