Cum să setezi o variabilă globală în functions.php
Vreau să pot afișa URL-ul imaginii reprezentative a unei postări și după ce am căutat pe internet am găsit următorul cod care funcționează bine când îl pun într-o buclă în șablonul paginii principale.
<?php $thumbSmall = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'small' );
$urlSmall = $thumbSmall['0']; ?>
<?php echo $urlSmall; ?>
Cu toate acestea, vreau să folosesc variabila $urlSmall și în alte locuri decât în șablonul paginii principale, și aici este unde cunoștințele mele limitate de programare mă lasă baltă. Am încercat să copiez și să lipesc
wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'small' );
$urlSmall = $thumbSmall['0'];
în functions.php dar nu a funcționat. Am nevoie ca aceste variabile să fie recunoscute global. Ce trebuie să fac aici? să scriu un fel de funcție?
Puteți transforma fragmentul de cod într-o funcție care returnează URL-ul imaginii în miniatură a unui articol:
function wpse81577_get_small_thumb_url( $post_id ) {
$thumbSmall = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), 'small' );
return $thumbSmall['0'];
}
Utilizare, furnizând ID-ul unui articol:
<?php echo wpse81577_get_small_thumb_url( 59 ); ?>

Super, dar cum obțin ID-ul postării în <?php echo wpse81577_get_small_thumb_url( 59 ); ?> dinamic, vreau să-l folosesc într-o buclă?

Întrebare pur PHP, într-adevăr.
global $urlSmall;
$urlSmall = $thumbSmall['0'];
Dacă declari variabila cu global
keyword când o inițializezi, aceasta va fi disponibilă ulterior. O poți "importa", ca să zicem așa, cu...
global $urlSmall;
var_dump($urlSmall);
Poți face același lucru atribuind direct perechi cheie/valoare în array-ul $GLOBALS
.
$GLOBALS['urlSmall'] = $thumbSmall['0'];
Aceasta pare a fi răspunsul cel mai direct la întrebarea:
Am nevoie ca aceste variabile să fie recunoscute global. Ce fac aici?
Totuși, pot exista metode mai bune de a gestiona datele.

Ei bine, pare să funcționeze pentru mine! Dar s_ha_dum, cum aș putea obține ceva similar fără a folosi variabile globale

Scuze, greșeala mea, am fost prea rapid, nu a rezolvat problema mea. Când urmez sugestiile tale și pun global $urlSmall; var_dump($urlSmall); în template-ul paginii principale, afișează doar NULL pe pagină.

Dacă vrei ca variabilele tale să fie accesibile global, trebuie să folosești variabile globale. O altă opțiune este să creezi o funcție așa cum a fost sugerat într-un alt răspuns. Nu știu de ce nu reușești să o faci să funcționeze. Funcționează. Trebuie să te asiguri că fișierul în care este definită variabila se execută înainte să încerci să folosești variabila, deci poate asta este problema.
