Skip to content

Instantly share code, notes, and snippets.

@ihorduchenko
Forked from igorbenic/desc.php
Created April 16, 2020 11:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ihorduchenko/31b3c17a87911c648075a072515ea00c to your computer and use it in GitHub Desktop.
Save ihorduchenko/31b3c17a87911c648075a072515ea00c 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;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment