2010-08-01 9 views
2

J'essaie d'avoir différentes images sur chacune de mes pages construites sur wordpress.Utilisation de if is_page() Instruction conditionnelle Wordpress

J'ai donc ce qui suit dans mon fichier index.php, fichier archive.php, fichier page.php, etc:

<img src="<?php bloginfo('template_url'); ?>/images/<?php echo $toppic; ?>" alt="page1" id="mainPageImg" /> 

Maintenant, dans mon dossier de page.php, je les suivantes:

<?php 
    // TOP PICTURE DEFINITIONS 
    if (is_home()) { 
     $toppic == 'page1.png'; 
    } 
    if (is_page('articles')) { 
     $toppic == 'page2.png'; 
    } 
?> 

Pourquoi cela ne fonctionne-t-il pas? Je l'ai essayé avec un égal (=) signe ...

EDIT: Si je $ define Toppic en haut, par exemple, dans le fichier index.php comme suit:

<?php $toppic = 'page1.png'; ?> 

Ensuite, il fonctionne . Par conséquent, cela doit être quelque chose qui a à voir avec les instructions conditionnelles if_page/is_home. Des idées?

Merci! Amit

Répondre

3

D'accord, j'ai trouvé la réponse.

C'est ce qui doit être fait. Pour les articles (blog) page à la partie supérieure, vous devez placer les éléments suivants:

<?php // TOP PICTURE DEFINITION FOR ARTICLES PAGE 
     if (is_home()) { 
      $toppic = 'page1.png'; 
     } 
?> 

Ensuite, dans votre fichier page.php, vous pouvez contrôler l'image en haut pour toutes les autres pages (sauf 404 où vous auriez besoin de mettre un is_404() dans votre 404.php Voilà donc ce que cela ressemble à:.

<?php 
    // TOP PICTURE DEFINITIONS 
    if (is_page('english')) { 
     $toppic = 'page1.png'; 
    } 
    if (is_page('aboutus')) { 
     $toppic = 'page1.png'; 
    } 
    if (is_page('newspaper')) { 
     $toppic = 'page1.png'; 
    } 
    else { 
     $toppic = 'page1.png'; 
    } 
?> 

enfin, afin de mettre en œuvre, utilisez la syntaxe HTML/php suivant:

<img src="<?php bloginfo('template_url'); ?>/images/<?php echo $toppic ?>" alt="page1" id="mainPageImg" /> 

C'est tout. Phew. Finalement, je l'ai eu au travail :) A dû le faire pour un client, aussi!

+0

Je ne comprends pas la solution, votre page "articles" est-elle aussi votre page d'accueil? –

+0

La page d'articles n'est pas ma page d'accueil. J'ai mis une page d'accueil "statique". Cependant, la fonction Wordpress is_home() renvoie "true" pour la page du blog (aka ma page d'articles). C'est pourquoi vous devez placer is_home() sur le fichier index.php, is_404() sur le fichier 404.php et is_page() dans le fichier page.php. J'espère que cela a aidé – Amit

+0

Ok, je pensais que 'articles' était l'une de vos pages statiques et non de votre page de blog. Oui 'is_home()' est la page qui est la page principale de votre blog et 'is_front_page()' est votre première page. –

1

Le slug de votre page Articles doit être défini comme articles. Ceci est défini dans l'interface de la page d'édition, voir these directions.

+0

Oui, c'est vrai. Je vais regarder dans ce – Amit

+0

Ne devrait pas is_home() fonctionne aussi bien? – Amit

+0

Je viens de le vérifier, le slug est défini pour les articles ... Je dois mentionner qu'il s'agit d'une page enfant d'une page parente. Cela devrait-il être important? – Amit