Passando variables ​​armazenadas para add_filter

Estou trabalhando em um site onde os títulos das páginas são gerados dinamicamente a partir de fonts de dados externas. Então, obviamente, o Yoast SEO / WordPress SEO não conhece nada sobre o título correto, a descrição, a imagem etc. na cabeça quando ele mostra tags OpenGraph e muito mais.

Isso não deve ser problema até agora, pois o WordPress SEO oferece suporte a filtros para se conectar à saída. Você pode encontrá-los nesta lista .

Os filtros devem entrar nas functions.php , eu preciso passar meus dados gerados para ele e então os ganchos farão sua magia. Como não consigo usar variables ​​em add_filter() , preciso de algum jeito.

Eu já estou usando esta técnica descrita por toscho para salvar dados em variables ​​estáticas, então eu posso acessá-las em todo o WordPress. (Isso funciona bem para tudo, exceto meus filtros.)

Então meu modelo de página está chamando

 $saved = title_storage($event_title); 

para salvar o título da página gerada dinamicamente em uma variável estática para uso posterior.

Nas minhas functions.php obtido o seguinte:

 function seo_change_title( $string ) { $string = title_storage(); return $string; } add_filter( 'wpseo_title', 'seo_change_title', 10, 1 ); 

Obviamente, isso não funciona. O title é removido das tags OpenGraph, mas isso é tudo o que muda. Embora isso signifique provavelmente, minha variável está vazia.

Tentando controlar minhas funções anônimas e buscar WPSE para soluções, mas achei que poderia ser tão fácil. Estou recebendo algo de errado aqui?

Solutions Collecting From Web of "Passando variables ​​armazenadas para add_filter"

A razão mais óbvia poderia ser o fato de o filtro wpseo_title estar triggersndo antes de salvar seu título. Tente mover a title_storage() em um estágio anterior como. A ação wp deve ser um bom candidato.

Assim como o Zlatev recomendou, tentei obter meus dados anteriormente e me conectar ao plugin Yoast SEO mais cedo.

Isso funcionou bem pra mim. Tive que escrever três novas funções para obter os dados desejados da minha fonte de dados externa, mas agora não tenho mais problemas com a definição do título, a imagem do gráfico aberto e muito mais.

Lição aprendida: funções de gravação (wrapper) para ter seus dados prontos, quando você precisar.