Includere file nel functions.php del tema child
Tipicamente nel file functions del mio tema uso require per includere altri file e mantenere le cose ordinate.
require_once("foo.php");
Ora, lavorando in un tema child, vorrei fare la stessa cosa. Sto aggiungendo opzioni personalizzate per l'admin e sembra impossibile includere il codice. Ho fatto l'echo del percorso per assicurarmi di chiamare il file giusto e sta effettivamente richiamando la posizione corretta, ma niente all'interno di quel file sembra funzionare. Il codice funziona correttamente se inserito direttamente nel file functions del tema child.

In un tema child, il modo corretto è:
require_once( get_stylesheet_directory() . '/foo.php');
Mentre nel tema parent si può ancora usare:
require_once ( get_template_directory() . '/foo.php' );
get_template_directory()
funziona ancora nel tema child, ma purtroppo punta alla directory del tema parent. Nel tuo caso è utile

Ho dovuto usare uno '/' ad esempio require_once( get_stylesheet_directory() . '/foo.php');

grazie @ssaltman. Hai ragione, la documentazione lo conferma: https://developer.wordpress.org/reference/functions/get_stylesheet_directory/ Ho modificato la mia risposta

I temi figli fanno riferimento ai temi genitore tramite il nome della directory, e in un'installazione normale tutti i tuoi temi si trovano in wp-content/themes/
, quindi direi che va bene fare riferimento a quei temi tramite il loro percorso relativo:
include '../parent-theme/some-file.php';
Se questo ti mette a disagio, osservo le seguenti costanti in WordPress 3.0.1 con un tema figlio di twentyten chiamato tt-child:
TEMPLATEPATH /home/adam/public_html/wp3/wp-content/themes/twentyten
STYLESHEETPATH /home/adam/public_html/wp3/wp-content/themes/tt-child
Quindi puoi fare quanto segue nel tuo tema figlio per fare riferimento alla directory del tema genitore:
include TEMPLATEPATH . '/some-file.php';

La costante STYLESHEETPATH è esattamente ciò che stavo cercando. Le inclusioni funzionano in un child theme se la utilizzi.

Sono davvero sorpreso che si possa anche solo considerare l'uso di un percorso hard-coded... un tema non dovrebbe funzionare solo in un ambiente specifico. Potrei capire se get_template_directory() non esistesse... ma esiste. Mi sono appena reso conto che è una domanda del 2010 lol

Decisamente non vuoi hardcodare l'URL. Il modo corretto per farlo è
require_once( get_stylesheet_directory(). '/my_included_file.php' );
Maggiori informazioni su Wordpress Codex
Ora, se stai modificando ad esempio header.php che ha un include, lo dovresti referenziare così:
require_once( get_stylesheet_directory() . '/../parenthteme/my_included_file.php' );

Il modo più semplice e migliore per includere file sia nel functions.php
del tema che nello sviluppo di plugin è utilizzando dirname(__FILE__)
.
Nel tuo caso bastava questo:
require_once dirname(__FILE__)."/foo.php";
Se il file che vuoi includere si trova in un'altra cartella, ad esempio inc
, dovresti usare questo:
require_once dirname(__FILE__)."/inc/foo.php";
Spero che questo possa essere utile a qualcuno in futuro.

È completamente possibile e normale includere file in functions.php
.
Io lo faccio così nel mio tema child (php
è la sottocartella per il codice):
include 'php/core.php';
Se hai problemi senza un motivo apparente, prova ad abilitare la modalità debug in wp-config.php
:
define('WP_DEBUG', true);
Potrebbero esserci errori rilevanti che si verificano, ma non vengono visualizzati.

Penso che questo sia il modo migliore per ottenere il percorso del tuo child theme
<?php $get_my_path = dirname( get_bloginfo('stylesheet_url') ); ?>
<?php require_once( $get_my_path. '/my_included_file.php' ); ?>
Idea presa da http://dynamicweblab.com/2013/02/get-template-path-in-wordpress-child-themes/
