rikard
  • 0
Новичок

Доступ к текущему URL-адресу в текстовом виджете для кнопки «Поделиться» в Facebook?

  • 0

Я создаю виджет «Поделиться этой страницей», который должен получить текущий URL -адрес и добавить его к URL-адресу Facebook следующим образом:

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

Я использую обычный текстовый виджет. Как я могу получить доступ к текущему URL-адресу и поместить его в ссылку для обмена?

Share
  1. О, чувак, это потрясающе. Всем большое спасибо за помощь. Я возьму это и вернусь с результатами.

    • 0
  2. @user653 прав, вы не можете сделать это в текстовом виджете с PHP, но вы можете сделать это в текстовом виджете с помощью JQuery /Javascript. Вот как.

    Начиная с HTML-кода кнопки «Поделиться» в Facebook

    Я предполагаю, что вы планируете использовать кнопку «Поделиться» в Facebook, и поэтому в вашем виджете будет 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>
    

    Не забудьте поставить jQuery в очередь в functions.php файле вашей темы.

    Однако для того, чтобы приведенный выше код работал, вам, вероятно, потребуется поставить в очередь включенный скрипт jQuery, связанный с WordPress, и добавить следующую строку кода в вашу тему functions.php (если это уже не делает какой-то другой плагин):

    wp_enqueue_script('jquery');
    

    Кнопка «Нравится» в Facebook как шорткод WordPress

    По иронии судьбы, несколько дней назад я реализовал кнопку Facebook Like в качестве шорткода для клиента, поэтому я решил поделиться с вами (каламбур. 😉 Вы можете видеть, как мы получили текущий URL-адрес из $_SERVER переменной. Я вырезал этот точный код из redirect_canonical() функции в /wp-includes/canonical.php' . Вы также можете просто включить это в 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. ПОМОЩЬ.

    Скриншот сайта WordPress, показывающий Facebook Like и кнопки в виде шорткодов и текстовых виджетов

    Надеюсь это поможет!

    • 0
  3. Просто используйте переменные $_SERVER:

    $url = add_query_arg( 'u', $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"], 'http://www.facebook.com/sharer.php' );
    
    • 0
  4. Вы не можете сделать содержимое текстового виджета таким динамичным. Получите, например, «Исполняемый виджет PHP» (http://wordpress.org/extend/plugins/php-code-widget/). Теперь вы можете добавить свой текст и т. д., включая php-код, чтобы вставить URL-адрес переменной.

    [править] Ссылка http://developers.facebook.com/docs/reference/plugins/like. Поместите это в свой виджет поддержки php-кода :

      <?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>
    
    • 0
  5. Вот полный код для вас:

    <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

Оставить ответ

You must login to add an answer.