web-dev-qa-db-fra.com

Comment vérifier le thème actif est wordpress parent ou enfant

Je travaille sur un plugin en plugin. Je fais le dossier de modèles et dans le dossier de modèles et il y a des fichiers de plug-in qui montre mes données de type post.

Premier scénario

Lorsque l'utilisateur active mon plugin, le dossier de modèles passe dans le dossier du thème actif. Cela fonctionne parfaitement.

Deuxième scénario

Maintenant, s'il y a un thème parent et enfant. Lorsque le thème parent est activé, le dossier de modèles est déplacé vers le thème parent, mais lorsque l'utilisateur active le thème enfant, le dossier de modèles est également déplacé vers le thème enfant.

Maintenant, je veux que si l'utilisateur active le thème parent, le dossier de modèle passe au thème parent mais lorsque l'utilisateur active le thème enfant, il ne doit pas être déplacé.

Comme:

if(parent theme active) {
    //files moved
} else {
    // Do nothing
}

Je recherche sur Google et trouve la fonction wp_get_theme(); mais elle ne convient pas à mon travail.

Donc, y a-t-il un crochet ou une fonction que je peux écrire et cela résout mon problème.

Voici ma fonction de dossier de déménagement:

$foo_theme_dir = get_template_directory();
$foo_plugin_dir = plugin_dir_path( __FILE__ );

copy($foo_plugin_dir.'template/archive-foo_plugin.php', $foo_theme_dir.'template/archive-foo_plugin.php');
2
deemi-D-nadeem

J'essaie ce code et il résout mon problème

if ( is_child_theme() === false ) {
    // files moved
} else {
    // do nothing
}

Merci à @birgire

3
deemi-D-nadeem

Vous pouvez essayer ce qui suit:

add_action( 'switch_theme', function( $new_name, $new_theme )
{
    if( is_a( $new_theme->parent(), '\WP_Theme' ) )
    {
        // Child theme was activated
    }
    else
    {
       // Parent theme was activated
    }
}, 10, 2 );

pour voir si le thème que vous venez d'activer est un thème child ou pas.

1
birgire