WordPress pods模板在get_header之前覆盖标题

I have a pods page using a template, 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?

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

Your code will work, if use 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 this line global $seo_title; we calling the variable, which is out of function ( $seo_title = $parcours->field('seo_title'); ).