Intereting Posts
Импорт / экспорт настроек блога в среде WordPress Network Нужна помощь, чтобы получить функцию для работы Настройка заголовка с использованием фильтра wp_title Календарное решение: Обработка предстоящих дат с сообщениями? добавить файл jquery, если включена определенная страница Как добавить продукт в woocommerce с php-кодом Показать WordPress Search Передача переменной через wp_head, а затем вызов ее на странице Список всех сообщений в пользовательском типе сообщений с разбивкой на страницы (правильный путь) Установка с помощью SQL Server Express Edition Я поставил свой блог на подстраницу, как мне получить заголовок страницы? Удаление методов контакта с пользователем работает с functions.php, но не с плагина Используется более одного текстового домена из-за включенных шаблонов для плагинов Как получить сообщение, которое имеет ненулевое или большее ноль мета значение Добавить шаблоны тем для дочерних категорий в иерархию шаблонов

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

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

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

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

Solutions Collecting From Web of "Доступ к текущему URL-адресу в текстовом виджете для кнопки «Facebook»?"

@ user653 верен, вы не можете сделать это в текстовом виджете с PHP, но вы можете сделать это в текстовом виджете, используя JQuery / Javascript. Вот как.

Начиная с Facebook Share Button HTML

Я предполагаю, что вы планируете использовать кнопку Facebook Share и, следовательно, будете иметь HTML-код в своем виджете, который будет выглядеть так?

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

Использовать jQuery и javascript 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 Button в качестве короткого кода несколько дней назад для клиента, поэтому я решил поделиться с вами (каламбур.). Вы можете видеть, как мы получили текущий 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 Share или Like. FWIW.

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

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

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

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

Вы не можете сделать так, чтобы содержимое текстового виджета было таким. Например, получите «Исполняемый виджет PHP» (http://wordpress.org/extend/plugins/php-code-widget/). Теперь вы можете добавить свой текст и т. Д., Включая php-код, чтобы вставить URL-адрес переменной.

[edit] Ref 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> 

Вот вам полный код:

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