direxit
direxit

Reputation: 405

WordPress pods template: Override title before get_header()

I have a pods page using a template, and it's working great. But I just need to override the title tag with a pods field containing a value:

    $parcours = pods('parcours', pods_v_sanitized(3, 'url'));

    $seo_title = $parcours->field('seo_title');

    // Supposed override
    function custom_page_title($seo_title) {

        return $seo_title;
    }

    add_filter('pre_get_document_title', 'custom_page_title', 999, 1);

    get_header();

?>

The title does not appear on the page (no override). Of course I made sure that $seo_title actually has a value.

Am I missing something or this is not doable that way?

Upvotes: 0

Views: 576

Answers (1)

Samvel Aleqsanyan
Samvel Aleqsanyan

Reputation: 2960

You're trying to use the $seo_title variable in the function as a global.

Your code will work if you use it like this:

$parcours = pods('parcours', pods_v_sanitized(3, 'url'));

global $seo_title;
$seo_title = $parcours->field('seo_title');

// Supposed override
function custom_page_title() {
    global $seo_title;

    return $seo_title;
}

add_filter('pre_get_document_title', 'custom_page_title', 999);

get_header(); ?>

With the line global $seo_title;, we are calling the variable, which is out of the function:

$seo_title = $parcours->field('seo_title');

Upvotes: 3

Related Questions