web-dev-qa-db-fra.com

Balise conditionnelle pour vérifier si 'page.php' est utilisé?

J'essaie de vérifier si le modèle page.php est utilisé ou non. J'ai essayé is_page_template( 'page.php' ) mais ça ne marche pas.

Je ne peux pas non plus utiliser is_page() parce que je ne veux faire quelque chose que lorsque page.php est utilisé, et non lorsqu'un autre modèle de page personnalisé est utilisé.

S'il vous plaît laissez-moi savoir à ce sujet et merci!

Edit: Aurait dû mentionner plus tôt que j’ai un fichier appelé common-options.php qui est inclus dans presque tous les modèles (comme index.php, page.php, single.php et page_blog.php), dans ce fichier, j’essaie de faire la vérification avec le code suivant:

if ( is_page_template( 'page.php' ) ) {
    echo "success!";
}

Mais cela ne fonctionne pas lorsque j'ouvre une page utilisant le "Modèle par défaut".

6
user1981248

En fait, j'ai rencontré le même problème moi-même et ma solution était ce code:

if(basename(get_page_template()) === 'page.php'){

}

basename(get_page_template()) obtient le nom du fichier de modèle de page (selon https://codex.wordpress.org/Function_Reference/get_page_template ) et je vérifie ensuite si ce dernier est égal à 'page.php'

8
intagli

Vous avez deux fonctions utiles: is_page() et is_page_template() .

La fonction is_page() renverra true lorsque vous serez sur une page et la fonction is_page_template() renverra false si la publication actuelle (pouvant être une page) n'utilise pas de modèle personnalisé.

Donc, il vous suffit d’utiliser les deux fonctions ensemble:

if ( is_page() && !is_page_template() ) {
  // your code
}
1
t-jam

Vieille question, mais intéressante.

En général, il est rare de rechercher template dans WordPress. Le modèle est result de la requête principale en cours d'exécution et de configuration du contexte de la requête.

Si nécessaire, je mettrais probablement en quelque sorte un drapeau au début de page.php, comme déclarer une constante pour cela, pour avoir mon propre contexte pour cela.

Globalement, cela me fait penser que toute logique nécessitant un tel déplacement doit être considérée comme ajustée en fonction de mécanismes et de conditions plus courants.

1
Rarst

En fait c'est très simple. Il suffit d'utiliser:

is_page_template ()

S'il renvoie true, page.php n'est pas utilisé et inversement :)

0
Assaf Katz
$bulkitnt_custom_page_control = is_page_template( 'custom-page.php' );

    if( $bulkitnt_custom_page_control != true ){
        do_action('bulkitnt_header_action');
    }
0
NineTheme Faruk