web-dev-qa-db-fra.com

Comment obtenir le slug du thème actif?

Je peux obtenir certaines informations sur le thème actif en utilisant wp_get_theme(). Par exemple:

$theme = wp_get_theme();
echo $theme->get( 'TextDomain' ); // twentyfifteen
echo $theme->get( 'ThemeURI' ); // https://wordpress.org/themes/twentyfifteen/

Y at-il un moyen d'obtenir la limace du thème? Dans ce cas, il s'agirait de vingt-quinze . Veuillez noter que le slug du thème n'est pas toujours le même que le domaine de texte du thème. J'aimerais aussi éviter de remplacer la chaîne de caractères sur l'URL du thème, si possible.

Réf.: https://codex.wordpress.org/Function_Reference/wp_get_theme

4
henrywright

J'ai trouvé l'élément le plus proche du slug du thème: le nom du répertoire du thème. Ceci peut être trouvé en utilisant get_template():

echo get_template(); // twentyfifteen

Réf.: https://codex.wordpress.org/Function_Reference/get_template

1
henrywright

Vous pouvez obtenir le slug dans la table options, stockée sous le nom stylesheet.

echo get_option('stylesheet');
7
RRikesh

Réponse courte: get_stylesheet ();

Il n'y a techniquement pas de valeur "slug" pour un thème. Le nom du répertoire d'un thème donné est ce que vous voulez.

get_template();

… Renverra le nom de répertoire de votre thème, ou le thème parent dans le cas où votre thème actuel est un thème enfant.

get_option('stylesheet');

Renverra TOUJOURS le nom du répertoire de votre thème actif, qu'il s'agisse ou non d'un thème enfant.

get_stylesheet();

Renverra TOUJOURS le nom du répertoire de votre thème actif, qu'il s'agisse ou non d'un thème enfant. Cette fonction est essentiellement un wrapper pour get_option('stylesheet');, sauf qu'elle applique également un filtre "feuille de style".

function get_stylesheet() {
/**
 * Filters the name of current stylesheet.
 *
 * @since 1.5.0
 *
 * @param string $stylesheet Name of the current stylesheet.
 */
return apply_filters( 'stylesheet', get_option( 'stylesheet' ) );
}

Je ne suis pas sûr de ce que fait le filtre 'stylesheet'. On dirait que cela pourrait avoir quelque chose à voir avec le personnaliseur.

Dans la grande majorité des cas, ces trois fonctions feraient la même chose, mais get_stylesheet(); semble être le pari le plus sûr.

2
drdogbot7