web-dev-qa-db-fra.com

Thème enfant: comment remplacer les variables?

Je vais construire mon premier thème pour enfants. J'ai compris comment redéfinir les fonctions (espérons!), Mais comment redéfinir les variables? Par exemple, dans un modèle Premium, je souhaite modifier les valeurs des variables de fil affichées dans functions.php:

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

Mais si je crée mon fichier functions.php dans mon thème enfant et attribue une valeur de flux RSS différente à ces variables ... rien ne se passe. Alors, quelle est la bonne façon de changer les variables?

4
Avionicom

Je suis mobile, alors ce sera court.

Utilisez le hook after_setup_theme pour ajouter une fonction permettant de définir ces variables. Déclarez-les globalement dans cette fonction avant de les définir.

J'espère que cela pourra aider.

Si quelqu'un veut ajouter un exemple à cette réponse avant que je ne rentre à la maison, n'hésitez pas. ;)

3
Otto

Le functions.php du thème parent est chargé plus tard, il écrasera ces variables. Montrez-nous le code où ces variables sont déclarées et où thex sont utilisés, il peut y avoir un filtre que vous pourriez utiliser.

Un exemple: Dans fetch_feed(), vous pouvez filtrer l'URL du flux:

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

Pour filtrer les valeurs, vous pouvez rechercher l’URL du thème parent:

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/' );
    }
}

Non testé, juste une idée.

0
fuxia