Obținerea variabilei PHP din functions.php și afișarea acesteia în fișierele template ale temei
Aceasta poate părea o întrebare simplă, dar nu reușesc să găsesc soluția.
Am creat o variabilă în functions.php - și încerc să o afișez în fișierele mele template.
Presupun că este din cauza domeniului de vizibilitate (scope).
Care este cea mai simplă modalitate de a afișa o variabilă sau de a crea o funcție care să-mi permită să afișez acest ID de Facebook în diverse fișiere template.
Iată ce am momentan în functions.php...
$fb_app_id = '68366786876786';
Și așa încercam să o afișez...
<?php echo $fb_app_id; ?>
Orice sugestii ar fi de mare ajutor, vă mulțumesc foarte mult

Dacă nu aveți acces la valoare, probabil este o problemă de domeniu de vizibilitate. Asigurați-vă că o globalizați mai întâi:
<?php
global $fb_app_id;
echo $fb_app_id;
?>
Alternativă
Nu sunt un fan al variabilelor globale, așa că alternativa pe care o recomand este utilizarea mecanismului de filtre încorporat în WordPress. Adăugați filtrul în fișierul functions.php
și aplicați-l unde este necesar.
În functions.php
:
add_filter( 'fb_app_id', 'return_fb_app_id' );
function return_fb_app_id( $arg = '' ) {
return '68366786876786';
}
În fișierele de șablon:
echo apply_filters( 'fb_app_id', '' );
Sau utilizați un action hook
În functions.php
add_action( 'fb_app_id', 'echo_fb_app_id' );
function echo_fb_app_id() {
echo '68366786876786';
}
În fișierele de șablon:
do_action( 'fb_app_id' );
Indiferent dacă utilizați un action hook sau un filtru, depinde în întregime de dumneavoastră. Recomand un filtru deoarece poate returna o valoare. Acest lucru este mult mai flexibil decât doar injectarea apelurilor echo
în șablon.

În acest caz, aș folosi opțiunile din Wordpress. Poți seta o opțiune folosind fie add_option()
fie update_option()
(probabil mai potrivit pentru cazul tău). Ai putea folosi update_option('fb_app_id', '68366786876786');
undeva în fișierul functions.php (funcția atașată la hook-ul init ar fi probabil o alegere bună).
Apoi poți afișa această opțiune în fișierele de tema folosind echo get_option('fb_app_id');
Motivul pentru care aș sugera această abordare, în loc să folosești variabile globale (pfui) sau hook-uri/filtre de acțiune, este că dacă intenționezi să lansezi tema public, va fi mult mai ușor să faci fb_app_id
o opțiune editabilă într-o pagină de setări a temei.
