Intereting Posts
Различия между wpdb-> get_results () и wpdb-> query () После восстановления пароля переадресуйте на индексную страницу Как изменить текст ссылки «Главная» в bbPress форуме breadcrumb? Плагин WordPress.com Stats требует входа в систему и перенаправления на WordPress.com при входе в систему Как скрыть подменю плагина информационного бюллетеня из панели мониторинга? Сообщение на сегодня, если ни одно сообщение не получит предыдущий Измените стиль zurb base top bar on.scroll в теме WordPress, используя jquery и css Как сохранить параметры url все время, когда пользователь просматривает мой сайт? Обратите внимание на массовые позиции импорта Плагин для rel = "nofollow" в сообщениях? Предотвращение кэша для текстового содержимого, но не для файлов CSS и изображений Атрибуты по умолчанию для штрих-кода по умолчанию, отличные от параметров по умолчанию Компоненты, используемые в Темы и плагины: как получить URL-адрес файла? function.php ошибочно удален Плагины в папке mu-plugins не загружаются

Доступ к текущему 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>