问题是,我试图删除一个由WordPress插件添加的JSON+LD块,该插件名为事件日历。
我相信它是由一个名为:Tribe__Events__Template__Single_Event
其中名为google_data_markup
负责我试图阻止/阻止添加到HTML的实际标记。
代码
根据我对此的有限理解,我需要删除此操作:
add_action( \'wp_head\', array( $this, \'google_data_markup\' ) );
.
我相信它在这里被称为Single\\u事件。php:
if ( ! class_exists( \'Tribe__Events__Template__Single_Event\' ) ) {
/**
* Single event template class
*/
class Tribe__Events__Template__Single_Event extends Tribe__Events__Template_Factory {
protected $body_class = \'events-single\';
public function hooks() {
parent::hooks();
// google data markup
add_action( \'wp_head\', array( $this, \'google_data_markup\' ) );
}
public function google_data_markup() {
$event_markup = new Tribe__Events__Google_Data_Markup__Event();
$html = apply_filters( \'tribe_google_data_markup_json\', $event_markup->script_block() );
echo $html;
}
/**
...
找到后的最初尝试
this 堆栈溢出时,以及
this 在WordPress Dev Exchange上,我尝试了:
remove_action( \'wp_head\', array( \'Tribe__Events__Template__Single_Event\', \'google_data_markup\' ) );
以及
global $Tribe__Events__Template__Single_Event;
remove_action( \'wp_head\', array( $Tribe__Events__Template__Single_Event, \'google_data_markup\' ) );
但它没有起作用。
在更加绝望和看到this slim thread (该线程中的示例似乎与我的非常相似,但如果我理解,则没有答案),以及this, 我也尝试过这个&
变量名称之前(为什么?)
remove_action( \'wp_head\', array( &$Tribe__Events__Template__Single_Event, \'google_data_markup\' ) );
我也尝试过:
function remove_the_events_calendar_jsonld() {
remove_action( \'wp_head\', array( $Tribe__Events__Template__Single_Event, \'google_data_markup\' ) );
}
add_action( \'plugins_loaded\', \'remove_the_events_calendar_jsonld\', 1 );
以及:
remove_action( \'Tribe__Events__Template__Single_Event\', \'google_data_markup\' );
请帮忙。在这一点上,我不知道我是否犯了一个简单的语法或逻辑错误,或者我是否完全困惑,忘记了函数、类和动作是如何工作的。