Tema infantil: como sobrescrever variáveis?

4

Vou criar meu primeiro tema infantil. Eu entendi como substituir funções (espero!), Mas como substituir variáveis? Por exemplo, em um modelo Premium, quero alterar os valores das variáveis de feed mostradas em functions.php:

$app_rss_feed = 'http://xxx.rss';
$app_twitter_rss_feed = 'http://yyy.rss';
$app_forum_rss_feed = 'http://zzz.rss';

Mas se eu criar meu arquivo functions.php dentro do meu tema filho e atribuir um valor de feed RSS diferente para essas variáveis ... nada acontece. Então, qual é o caminho certo para mudar variáveis?

    
por Avionicom 23.03.2012 / 23:00

2 respostas

3

Sou móvel, portanto, isso será curto.

Use o gancho after_setup_theme para adicionar uma função para definir essas variáveis. Declare-os como globais dentro dessa função antes de configurá-los.

Espero que ajude.

Se alguém quiser adicionar um exemplo a essa resposta antes de eu chegar em casa, fique à vontade. ;)

    
por Otto 24.03.2012 / 04:25
0

O% parent_de% do tema pai é carregado mais tarde, sobrescreverá essas variáveis. Nos mostre o código onde estas variáveis são declaradas e onde thex é usado, pode haver um filtro que você possa usar.

Um exemplo: em functions.php , você pode filtrar o URL do feed:

do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );

Para filtrar os valores, você pode verificar o URL do tema pai:

add_filter( 'wp_feed_options', 'wpse_46644_feed' );

function wpse_46644_feed( $arr )
{
    if ( 'http://example.com/feed/' === $arr[1] )
    {
        $arr[0]->set_feed_url( 'http://replacement.example.com/feed/' );
    }
}

Não testado, apenas uma ideia.

    
por fuxia 24.03.2012 / 00:28