Intereting Posts
Быстрый способ скопировать блог x на другой домен / сервер без его удаления Как do_action funtion работает с параметром пути? Изменить строку запроса на довольно постоянную ссылку Как обновить мою собственную тему? Заказ wp_get_nav_menu_items не работает Существует ли функция темы is_password_protected ()? Гель все изображение определенного типа сообщения Бесконечный прокрутка по петле? Запуск короткого кода галереи в пользовательском полевом виджете Способы показать несколько отдельных галерей за сообщение? Список виджетов для дочерних страниц, исключить текущую страницу Как скрыть содержание сообщения / мета из всех, кроме автора сообщения и администратора Опубликовать, чтобы наследовать фоновое изображение пользовательской категории от родительского Добавьте свою собственную страницу настроек для плагина Как предотвратить макрос tinymce от вставки nbsp ;?

Как я могу позиционировать кнопки ShareThis вручную при использовании подключаемого модуля?

При разработке пользовательских тем у меня есть клиенты, которые хотят использовать ShareThis для своих социальных сетей. ShareThis предлагает подключаемый модуль с панелью управления, которая позволяет клиенту управлять кнопками, стилем и т. Д. Проблема заключается в том, что подключаемый модуль ShareThis отображает кнопки с использованием фильтра на the_content . Это означает, что кнопка всегда должна появляться сразу после основного блока содержимого. Есть ли способ вручную управлять размещением кнопок ShareThis в моих шаблонах при использовании подключаемого модуля? Я знаю, что я могу вручную разместить код ShareThis в своих шаблонах, но тогда у клиента не было бы контроля внутри панели управления WordPress.

Если это поможет, на данный момент я могу делать то, что хочу, используя эту методологию. Я не уверен, что это лучший способ, и я не тестировал его вне среды разработки. Кажется, это работает до сих пор. Я надеюсь, что это вызвало некоторые отзывы и, возможно, другие решения.

Основная идея такова:

1) Отключите встроенные вызовы на ShareThis, которые автоматически вставляют кнопки на страницах и сообщениях (они делают это с вызовом add_filter('the_content', 'st_add_widget'); вокруг строки 285 в файле sharethis.php в плагине) ,

2) создайте мое собственное действие, которое можно вызвать, чтобы вставить виджет ShareThis, где я хочу в своем шаблоне.

3) Делайте все это в functions.php поэтому мне не нужно взламывать подключаемый модуль или ядро ​​Wordpress. Выполнение этого способа должно позволить WP и обновлениям плагинов работать без каких-либо будущих проблем.

Решение Добавлено это в мои functions.php

 //remove share this from all content function remove_sharethis() { remove_filter('the_content', 'st_add_widget'); remove_filter('the_excerpt', 'st_add_widget'); remove_action('wp_head', 'st_widget_head'); } add_action( 'template_redirect', 'remove_sharethis' ); function print_sharethis_widget( ){ print st_widget_head(); print st_add_widget(''); } add_action( 'custom_sharethis_widget','print_sharethis_widget'); 

Затем в моих шаблонах я custom_sharethis_widget действие custom_sharethis_widget где я хочу, чтобы кнопки ShareThis отображались. как это:

 <div id="my-sharethis"><?php do_action( 'custom_sharethis_widget' ); ?></div> 

Мне потребовалось некоторое время, чтобы это исправить, поэтому, надеюсь, это помогает кому-то другому.

Примечание. Этот плагин sharethis НЕ закодирован правильно с использованием фильтров и может отображать кнопки на боковой панели, поэтому вы можете рассмотреть возможность установки кода вручную.

С установленным плагином

Вам нужно будет использовать все 3 фрагмента кода

Что вам нужно сделать в первую очередь, это удалить кнопки, которые вы можете сделать, используя этот код в вашем child functions functions.php-файле.

 function remove_share_this() { remove_filter( 'the_content', 'st_add_link' ); remove_filter( 'the_excerpt', 'st_add_widget' ); remove_filter('the_content', 'st_add_widget'); remove_filter( 'the_excerpt', 'st_add_link' ); } add_action( 'loop_start', 'remove_share_this' ); 

Этот метод позволяет вам отображать кнопки без установки плагина.

Только нужны эти 2 шага

Затем вам нужно добавить скрипт на страницы, на которых вы хотите отображать кнопки.

 <script type="text/javascript">var switchTo5x=true;</script> <script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script> <script type="text/javascript">stLight.options({publisher: "your-pub-id", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script> 

Я использовал окно сценариев тем, но вы можете загрузить это условно и подключить его с помощью wp_enqueue_scripts

Затем вы добавляете теги span на свою страницу, которые вы можете использовать, используя теги WordPress или темы, в противном случае прямо в вашем шаблоне, например single.php

 <span class='st_sharethis_large' displayText='ShareThis'></span> <span class='st_facebook_large' displayText='Facebook'></span> <span class='st_twitter_large' displayText='Tweet'></span> <span class='st_linkedin_large' displayText='LinkedIn'></span> <span class='st_pinterest_large' displayText='Pinterest'></span> <span class='st_email_large' displayText='Email'></span>