it-swarm-ko.tech

Facebook 공유 버튼 용 텍스트 위젯에서 현재 URL에 액세스 하시겠습니까?

나는 "이 페이지 공유" 위젯을 만들고 현재 URL을 가져와 그것을 Facebook에 추가해야합니다. 이 같은 URL :

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

일반 텍스트 위젯을 사용하고 있습니다. 현재 URL에 액세스하여 공유 링크에 넣을 수 있습니까?

2
Rikard

@ user653 가 맞습니다. PHP가있는 텍스트 위젯에서는 할 수 없지만 JQuery /자바 스크립트. 방법은 다음과 같습니다.

Facebook 공유 버튼 HTML로 시작

Facebook Share Button 을 사용할 계획이라고 가정하면 위젯에 HTML 코드가 다음과 같이 표시됩니다 ?

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

JQuery와 Javascript's windows.location object.property 사용

그렇다면 다음 코드를 모두 위젯에 추가하면됩니다 .

<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 파일에서 jQuery를 큐에 넣으십시오.

그러나 위의 코드가 작동하려면 WordPress와 함께 번들로 포함 된 jQuery 스크립트를 큐에 넣어야합니다 (다른 플러그인이 이미있는 경우가 아니라면 테마의 functions.php에 다음 코드 행을 추가하십시오 그렇게 함) :

wp_enqueue_script('jquery');

WordPress 단축 코드로 Facebook 좋아요 버튼

아이러니하게도 나는 며칠 전에 클라이언트에 대해 Facebook Like ButtonShortcode 로 구현했습니다. 그래서 나는 또한 당신과 share 할 것이라고 생각했습니다 (pun 의도.;) $_SERVER 변수에서 현재 URL을 얻는 방법을 알 수 있습니다. /wp-includes/canonical.php'redirect_canonical() 함수에서이 정확한 코드를 보여주었습니다. 테마의 functions.php 파일에 이것을 포함시킬 수도 있습니다.

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

모양

사용법을 보여주는 스크린 샷입니다. 텍스트 위젯 콘텐츠 필터를 처리하지 마십시오 이므로 짧은 코드는 텍스트 위젯에서 작동하지 않습니다. 나는 빨리 보았고 단축 코드를 처리 할 수있는 텍스트 위젯을 추가하는 플러그인을 찾지 못했지만 하나를 작성하기가 어렵지 않거나 Facebook 공유 또는 좋아요 버튼을 추가하는 위젯을 작성하는 것은 어렵지 않습니다. FWIW.

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

이것이 도움이되기를 바랍니다!

3
MikeSchinkel

$ _SERVER 변수를 사용하면됩니다.

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

텍스트 위젯의 내용을 동적으로 만들 수는 없습니다. 예를 들어 "Executable PHP widget"(http://wordpress.org/extend/plugins/php-code-widget/)을 얻으십시오. 이제 PHP 코드를 포함한 텍스트 등을 추가하여 변수 URL을 삽입 할 수 있습니다.

참조 http://developers.facebook.com/docs/reference/plugins/like .PHP 코드 지원widget에 이것을 넣으십시오 :

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

다음은 완전한 코드입니다.

<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