Отмените плагин AddThis Wordpress для определенных сообщений

У меня есть сайт Wordpress, который использует несколько настраиваемых типов сообщений для достижения разных целей. Я также использую плагин AddThis для добавления кнопок социальных сетей вверху сообщений. Однако у меня есть один тип пользовательского сообщения, к которому я не добавляю плагин для добавления кнопок общего доступа AddThis. Есть ли способ подключиться к плагину AddThis, чтобы он возвращал false или что-то еще при определенном условии?

Может быть, что-то вроде:

if($post_type === "no-addthis"){
     addthis_plugin_hook(false);
}

Я полностью понимаю, что это неправильный способ сделать это, но кто-нибудь знает что-то подобное? Заранее спасибо.


person Commodore Timo    schedule 21.05.2013    source источник


Ответы (2)


Следующее действие удалит все фильтры AddThis, действующие для текущего сообщения:

if( get_post_type( get_the_ID() ) == 'your-post-type' ) {
    remove_filter('the_content', 'addthis_display_social_widget', 15);
    remove_filter('the_content', 'addthis_script_to_content');
    remove_filter('get_the_excerpt', 'addthis_display_social_widget_excerpt', 11);
    remove_filter('get_the_excerpt', 'addthis_late_widget', 14);
    remove_filter('wp_trim_excerpt', 'addthis_remove_tag', 11, 2);
}

Я бы посоветовал запускать этот код прямо перед любым вызовом the_content() или the_excerpt() (или аналогичной функции с префиксом get_ ) в вашем пользовательском шаблоне типа сообщения.

Примечание. Я не проверял это и никогда не использовал подключаемый модуль AddThis. Я только что заглянул в исходный код. :)

person Spencer Cameron-Morin    schedule 21.05.2013
comment
Именно то, что я искал. Спасибо, Спенсер. - person Commodore Timo; 06.06.2013

В самой новой версии я делаю следующее в functions.php

add_action( 'init', 'remove_addthis' );
function remove_addthis(){
  remove_action( 'wp_head', 'addthis_add_content_filters');
}
person chifliiiii    schedule 17.07.2014
comment
У меня это не сработало с последними версиями WP/AddThis. Честно говоря, у меня не было времени на отладку — это может быть очень простая настройка — но мне нужно было исправить только одно простое место, поэтому использование трюка get_the_content() сработало для меня лучше. - person onebc; 13.09.2018
comment
Плохо, что не включил версию плагина в ответ. Этот ответ датирован 2014 годом, поэтому они, скорее всего, изменили название фильтра. - person chifliiiii; 14.09.2018