We recently had an issue where a customer converted to https but wanted to retain non https open graph social metadata.
To enable this, we’ve added a filter that allows you to modify the open graph metadata programmatically.
The New Filter:
We’ve added this filter to our codebase on all themes:
$meta = apply_filters('tha_social_meta', $meta);
$meta is an array of metadata as constructed as follows:-
$meta = array(
//uniqueID => meta
'og:type' => array(
//attribute -> value
'property' => 'og:type',
'content' => $page_type,
),
'og:url' => array(
'property' => 'og:url',
'content' => $current_url,),
'twitter:card' => array(
'name' => 'twitter:card',
'content' => 'summary_large_image'
)
);
Example of How to Filter the Open Graph MetaData:
If you’re running a child theme you can add the following code in functions.php. Alternatively, if you’re not running a child theme, then we recommend you create this as a separate plugin so your changes aren’t overwritten on theme update.
Sample Code for this Filter
This example overrides the og:url meta:
add_filter("tha_social_meta", "modify_og_url");
function modify_og_url($meta) {
$url = 'your custom url';
$meta['og:url']['content'] = $url;
return $meta;
}
This filter will allow you to do things like:
-
Modify the social meta protocol to retain previously built social meta signals
-
Make any other changes that you require to the social metadata parameters