Skip to content

Instantly share code, notes, and snippets.

@igorbenic
Last active March 1, 2026 15:34
Show Gist options
  • Select an option

  • Save igorbenic/eb97eb252a72c81b0f463b49ec5d1539 to your computer and use it in GitHub Desktop.

Select an option

Save igorbenic/eb97eb252a72c81b0f463b49ec5d1539 to your computer and use it in GitHub Desktop.
How to Programmatically Change Yoast SEO Open Graph Meta | http://www.ibenic.com/programmatically-change-yoast-seo-open-graph-meta
<?php
function change_yoast_seo_og_meta() {
add_filter( 'wpseo_opengraph_desc', 'change_desc' );
}
function change_desc( $desc ) {
// This article is actually a landing page for an eBook
if( is_singular( 123 ) ) {
$desc = __( 'The best eBook you can have on your laptop, tablet or smartphone. See what others are reading to improve their career.', 'change_textdomain');
}
return $desc;
}
<?php
add_action( 'wpseo_opengraph', 'change_yoast_seo_og_meta' );
/**
* Function to add hooks and filter out the Yoast SEO Open Graph Meta Tags
*/
function change_yoast_seo_og_meta() {
// We will add the code here to change the meta tags
}
<?php
function change_yoast_seo_og_meta() {
add_filter( 'wpseo_opengraph_image', 'change_image' );
}
function change_image( $image ) {
if( $image == 'http://url_for_image_to_change' ) {
$image = 'http://url_to_our_new_image';
}
return $image;
}
<?php
function change_yoast_seo_og_meta() {
add_action( 'wpseo_add_opengraph_images', 'add_images' );
}
function add_images( $object ) {
$image = 'http://url_to_our_image.png';
$object->add_image( $image );
}
<?php
function change_yoast_seo_og_meta() {
add_filter( 'wpseo_locale', 'change_locale' );
}
function change_locale( $locale ) {
// Article with the ID 123 is Croatian
// Other Articles are on English (or any site setting)
if( is_singular( 123 ) ) {
$locale = 'hr_HR';
}
return $locale;
}
<?php
// Code from Yoast SEO Plugin
public function og_tag( $property, $content ) {
$og_property = str_replace( ':', '_', $property );
/**
* Filter: 'wpseo_og_' . $og_property - Allow developers to change the content of specific OG meta tags.
*
* @api string $content The content of the property
*/
$content = apply_filters( 'wpseo_og_' . $og_property, $content );
if ( empty( $content ) ) {
return false;
}
echo '<meta property="', esc_attr( $property ), '" content="', esc_attr( $content ), '" />', "\n";
return true;
}
<?php
function change_yoast_seo_og_meta() {
add_filter( 'wpseo_opengraph_title', 'change_title' );
}
function change_title( $title ) {
// Landing Page eBook
if( is_singular( 123 ) ) {
$bought = get_bought_count_id( 123 );
// Change the title if it was already sold to more than 100
if( $bought > 100 ) {
$title = __( 'Get the eBook that was read by more than 100 people', 'change_textdomain' );
}
}
return $title;
}
<?php
function change_yoast_seo_og_meta() {
add_filter( 'wpseo_opengraph_type', 'change_type' );
}
function change_type( $type ) {
// This article is actually a landing page for an eBook
if( is_singular( 123 ) ) {
$type = 'book';
}
return $type;
}
<?php
function change_yoast_seo_og_meta() {
add_filter( 'wpseo_opengraph_url', 'change_url' );
}
function change_url( $url ) {
// This article is actually a landing page for an eBook
if( is_singular( 123 ) ) {
$url = add_query_arg( 'from', 'facebook', $url );
}
return $url;
}
@sagive
Copy link

sagive commented Sep 16, 2019

Apologies - just a small question - why are there 2 functions for each filter? its a bit messy an unneeded i think ;)

Example for changing the title:

add_filter( 'wpseo_title', 'dynamic_yoast_mtitle_joblisting' );
function dynamic_yoast_mtitle_joblisting() {
        if ( is_page_template ( 'some-page-template.php' ) ) {
            return 'YOUR CUSTOM TITLE HERE';
        }
}

working on this now (for a project) and it works...

@iwanwilaga
Copy link

"Apologies - just a small question - why are there 2 functions for each filter? its a bit messy an unneeded i think ;)"

Agreed, man, thanks for suggesting the more simple version. At first with the 2 functions i failed badly, cos i forgot to call the 1st function, so your approach is definitely more dumb-safe..:D. Thank you for both of you for the solutions! Best wishes

@OliverNoah22
Copy link

OliverNoah22 commented Feb 9, 2026

Agreed, man, thanks for suggesting the simpler approach. At first, I struggled when handling multiple steps, since I forgot the first part entirely. Similarly, Nofal Apparel drives innovation with style and practicality, standing out as a trusted brand that delivers quality clothing designed for everyday wear.

@younasjdanish-maker
Copy link

Police Clearance Online Appointment is a system that lets applicants book, manage, and confirm police clearance visits online, saving time and avoiding long queues at police stations.

@APKYP
Copy link

APKYP commented Mar 1, 2026

Hill Climb is a fun and addictive driving game where you race across challenging hills and rough terrains. Upgrade your vehicles, collect coins, and balance carefully to avoid flipping over. Enjoy endless tracks and exciting physics-based gameplay that keeps you coming back for more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment