The Problem
I am trying to remove an JSON+LD block being added by a WordPress plugin called The Events Calendar.
I believe it is being added by the function called: Tribe__Events__Template__Single_Event
within which the function named google_data_markup
is responsible for the actual markup which I am trying to stop/prevent from being added to the HTML.
The Code
From my limited understanding of this, I need to remove this action:
add_action( 'wp_head', array( $this, 'google_data_markup' ) );
.
I believe it is being called here, in Single_Event.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;
}
/**
...
What I've tried
Initial Attempts
After finding this on StackOverflow, and this on WordPress Dev Exchange, I tried:
remove_action( 'wp_head', array( 'Tribe__Events__Template__Single_Event', 'google_data_markup' ) );
and
global $Tribe__Events__Template__Single_Event;
remove_action( 'wp_head', array( $Tribe__Events__Template__Single_Event, 'google_data_markup' ) );
But it did not work.
Subsequent Attempts
After getting even more desperate and seeing this slim thread I've also tried this, with the &
before the variable name (why?):
remove_action( 'wp_head', array( &$Tribe__Events__Template__Single_Event, 'google_data_markup' ) );
I've also tried this:
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 );
as well as:
remove_action( 'Tribe__Events__Template__Single_Event', 'google_data_markup' );
Please help. At this point I have no idea if I am making a simple syntax or logic error of sorts, or if I am completely confused and oblivious to how functions, classes and actions work.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire