web-dev-qa-db-fra.com

Le fichier placé dans le thème de l'enfant n'est pas inclus

J'ai modifié le fichier theme.php situé dans le thème parent dans le dossier "Inclus" et je l'ai placé dans le thème de l'enfant également dans le dossier "Inclus", mais mes modifications ne sont pas incluses. =WordPress ne lit que le fichier placé dans le dossier de thème parent. Quelle est la raison de cela? Que dois-je faire les modifications sont incluses lorsque le fichier est situé dans le dossier thème de l'enfant? Alternativement comment Puis-je remplacer une fonction d'inclut/theme.php dans fonction.php? Je ne peux pas remplacer la fonction car il y a une erreur de redéclairation.

Modifier 7.05.2020

@Jacobpeattie - merci beaucoup. Je l'ai lu. Je ne sais pas si je comprends bien ça va bien. Mon anglais n'est pas encore très bon. J'ai écrit alors dans les fonctions.php:

if ( ! function_exists( 'bimber_capture_entry_featured_media' ) ) :
function bimber_capture_entry_featured_media_my_modifications( $args ) {

//function code with my modifications

}
endif;

C'était un succès ajouté, mais ne fonctionne pas.

Peut-être que c'est des informations utiles:

  1. Fichier theme.php est ajouté dans Functions.PHP Fichier dans le dossier Parenttheme/Comprend de la sorte: require_once BIMBER_INCLUDES_DIR . 'theme.php';

  2. La fonction est appelée par 'ECHO' dans une autre fonction.

Voici des fichiers PHP:

1
reti

Vous voulez remplacer bimber_capture_entry_featured_media Dans votre thème de votre enfant. Dans le fichier theme.php, vous nous avez donné que vous pouvez voir que cela ne s'appelle que dans un endroit, de bimber_render_entry_featured_media, et l'appel est enveloppé dans un filtre:

if ( apply_filters( 'bimber_render_entry_featured_media', true, $args ) ) {
    echo bimber_capture_entry_featured_media( $args );
}

lorsque le retour du FAUX du filtre annulera l'appel au code par défaut. En supposant que ce soit vrai, que rien d'autre n'appelle cette fonction sans le garde de filtre, ce que vous pouvez faire à la place, c'est plutôt

  1. implémenter le filtre bimber_render_enterry_featured_media; Choisissez une priorité faible s'il y a autre chose qui implémente cela, mais je ne vois rien dans ces fichiers
  2. dans le filtre, appelez votre remplacement bimber_capture_entry_featured_media_my_modifications et écho le résultat
  3. retournez False du filtre pour annuler l'appel au code non modifié d'origine.

par exemple. (non testé)

function bimber_render_entry_featured_media_filter_my_modifications( $flag, $args ) {
    if ($flag) {
        echo bimber_capture_entry_featured_media_my_modifications( $args );
    }
    return false;
}
add_filter( 'bimber_render_entry_featured_media',
            'bimber_render_entry_featured_media_filter_my_modifications', 10, 2 );

Cependant, il y a beaucoup de crochets dans la méthode originale également, de sorte que vous essayez de pouvoir utiliser celles-ci pour modifier le comportement plutôt que de remplacer complètement la méthode.

2
Rup