Cum să obții slug-ul temei active în WordPress
Pot obține anumite informații despre tema activă folosind wp_get_theme()
. De exemplu:
$theme = wp_get_theme();
echo $theme->get( 'TextDomain' ); // twentyfifteen
echo $theme->get( 'ThemeURI' ); // https://wordpress.org/themes/twentyfifteen/
Există o modalitate de a obține slug-ul temei? În acest caz ar fi twentyfifteen. Te rog să reții că slug-ul temei nu este întotdeauna același cu domeniul de text al temei. Aș dori, de asemenea, să evit înlocuirea de șiruri pe URL-ul temei, dacă este posibil.
Referință: https://codex.wordpress.org/Function_Reference/wp_get_theme
Răspuns scurt: get_stylesheet();
Tehnic, nu există o valoare 'slug' pentru o temă. Numele directorului unei teme este ceea ce cauți.
get_template();
...va returna numele directorului temei tale, sau al temei părinte în cazul în care tema curentă este o temă copil.
get_option('stylesheet');
Va returna ÎNTOTDEAUNA numele directorului temei active, indiferent dacă este o temă copil sau nu.
get_stylesheet();
Va returna ÎNTOTDEAUNA numele directorului temei active, indiferent dacă este o temă copil sau nu. Această funcție este în esență un wrapper pentru get_option('stylesheet');
, cu excepția faptului că aplică și un filtru 'stylesheet'.
function get_stylesheet() {
/**
* Filtrează numele stylesheet-ului curent.
*
* @since 1.5.0
*
* @param string $stylesheet Numele stylesheet-ului curent.
*/
return apply_filters( 'stylesheet', get_option( 'stylesheet' ) );
}
Nu sunt sigur ce face filtrul 'stylesheet'. Se pare că ar putea avea legătură cu Customizer-ul.
În marea majoritate a cazurilor, aceste trei funcții ar face același lucru, dar get_stylesheet();
pare cea mai sigură alegere.

wp_get_theme
obține un obiect WP_Theme pentru o temă.
$theme = wp_get_theme();
if ( 'Conj' === $theme->name || 'conj' === $theme->template ) {
// Fă ceva...
}

Am găsit că cel mai apropiat lucru de slug-ul temei este numele directorului temei. Acesta poate fi găsit folosind get_template()
:
echo get_template(); // twentyfifteen
Referință: https://codex.wordpress.org/Function_Reference/get_template

wp_get_active_and_valid_themes()
am găsit aceasta în wp-settings.php
// Încarcă funcțiile pentru tema activă, atât pentru tema părinte cât și pentru tema copil dacă este cazul.
foreach ( wp_get_active_and_valid_themes() as $theme ) {
if ( file_exists( $theme . '/functions.php' ) ) {
include $theme . '/functions.php';
}
}
