Home > Mobile >  Yoast wpseo_title visible in page Yoast SEO section
Yoast wpseo_title visible in page Yoast SEO section

Time:11-26

I want to populate the Yoast SEO title with a custom generated text string (functions.php).

The following add_filter function does provide the right output in my page's sourcecode.

function seoTitelHomepage() {
  return is_page(get_option('page_on_front')) ? jet_engine()->listings->data->get_option( 'pwp-options::seo-titel-homepage' ) : false;
}
add_filter('wpseo_title', 'seoTitelHomepage');

But since I use a filter function, I only change the sourcecode on output. Therefore the data is not written to the Database.

What I would like is to have my custom text being populated in the wpseo_title database field, in order to see this text also in my Yoast SEO section in my page details. That way, the Yoast 'analytics / scoring' will also work and I can see the nice preview displayed above of the Google result overview.

Any help is greatly appreciated!

CodePudding user response:

I fixed it myself, below answer is for anyone who needs it.

function seoHomepageTitle() {
  $homepageId = get_option('page_on_front');
  $meta_key = "_yoast_wpseo_title";
  $meta_value = jet_engine()->listings->data->get_option( 'pwp-options::seo-titel-homepage' );
  isset($homepageId , $meta_value) ? update_post_meta($homepageId , $meta_key, $meta_value) : false;
 }

add_action('updated_postmeta', 'seoHomepageTitle');

The trick was the right action hook; updated_postmeta.

A list of Yoast meta keys can be found here: https://shellcreeper.com/yoast-seo-meta-keys-table/

I am open for feedback on the above code, to make it more robust.

  • Related