Obtener variable PHP desde functions.php y mostrarla en archivos de plantilla del tema
Esto puede parecer una pregunta tonta pero no logro resolverlo.
He creado una variable en mi functions.php - y estoy tratando de mostrarla en mis archivos de plantilla.
Supongo que es por el alcance de la variable.
¿Cuál es la forma más simple de mostrar una variable o crear una función que me permita mostrar este ID de Facebook en varios archivos de plantilla?
Esto es lo que tengo actualmente en mi functions.php...
$fb_app_id = '68366786876786';
Y así es como estaba tratando de mostrarlo...
<?php echo $fb_app_id; ?>
Cualquier idea sería de gran ayuda, muchas gracias

Si no tienes acceso al valor, probablemente sea un problema de alcance. Asegúrate de globalizarlo primero:
<?php
global $fb_app_id;
echo $fb_app_id;
?>
Alternativamente
No soy fanático de las variables globales, por lo que la alternativa que recomiendo es usar el mecanismo de filtros incorporado en WordPress. Agregas el filtro en tu archivo functions.php
y lo aplicas donde sea necesario.
En functions.php
:
add_filter( 'fb_app_id', 'return_fb_app_id' );
function return_fb_app_id( $arg = '' ) {
return '68366786876786';
}
En tus archivos de plantilla:
echo apply_filters( 'fb_app_id', '' );
O usa un action hook
En functions.php
add_action( 'fb_app_id', 'echo_fb_app_id' );
function echo_fb_app_id() {
echo '68366786876786';
}
En tus archivos de plantilla:
do_action( 'fb_app_id' );
Ya sea que uses un action hook o un filtro depende completamente de ti. Recomiendo un filtro porque puede retornar un valor. Esto es mucho más flexible que solo inyectar llamadas echo
en tu plantilla.

En este caso, yo usaría las opciones de WordPress. Puedes establecer una opción usando add_option()
o update_option()
(probablemente mejor para tu caso). Usarías update_option('fb_app_id', '68366786876786');
en algún lugar de tu archivo functions.php (la función del hook init probablemente sería un buen lugar).
Luego podrías mostrar esta opción en tus archivos de plantilla usando echo get_option('fb_app_id');
La razón por la que sugeriría esta forma, en lugar de usar variables globales (puaj) o hooks de acción/filtro, es que si planeas lanzar tu tema al público, será mucho más fácil hacer que fb_app_id
sea una opción editable en una página de opciones del tema.
