2010-08-19 4 views
3

Bonjour à tous,CSS personnalisé par page dans Wordpress

J'ai créé un arrière-plan différent et quelques autres images pour certaines pages de notre site. Actuellement, le code ci-dessous fonctionne bien avec la page "kids" sur notre site. J'essaie de comprendre comment ajouter ces CSS à d'autres pages "sous" la page des enfants. Donc, si vous allez à kids/block-party, comment pourrais-je l'ajouter au code pour appeler ce CSS spécial?

J'ai essayé le ci-dessous

<body<?php if (is_page(array('kids, kids/block-party'))) { 
echo ' class="kids" '; } ?>> 

la virgule ne semble pas s'inscrire pour une raison quelconque.

Ceci est un site d'exécution wordpress.

Merci

Répondre

4

Une autre option est le simple remplacement

<body> 

avec

<body <?php body_class(); ?>> 

Ensuite, vous pouvez cibler par css comme suit:

body.page-id-2, body.parent-pageid-2 { background-color: red; } 

Où l'ID est l'ID de la page/page parent que vous ciblez. Cela permettra à votre modèle de rester libre de toute logique et vous permettra les mêmes options de personnalisation que votre méthode actuelle.

+1

Merci pour cela, je peux finir par utiliser ce code à la place. –

3

cernées je besoin du '' autour d'eux

<body<?php if (is_page(array('newsletter-1', 'newsletter-2', 'newsletter-3'))) { echo ' class="myclass" '; } ?>> 
1

J'ai peut-être pensé à cela, mais voici ma solution.

Le script ci-dessous obtient automatiquement tous les enfants d'une page parent spécifique et imprime la classe dont vous avez besoin. Cette solution fonctionne très bien si vous ne voulez pas avoir à mettre à jour manuellement la liste des pages enfants.

Cela va dans votre fichier header.php:

<?php 
    //set page id 
      $page_id = '98'; 

      //get page's children 
    $children = get_pages('child_of='.$page_id); 
    foreach($children as $child){ 
     $children_ids = $child->ID; 
    } 

    if(is_page($page_id) || is_page($children_ids)){ 
     echo 'class="kids'; 
    } 

>

Merci, et j'espère que cela aide!

1

Note: Je sais que les 3 réponses actuelles sont une solution commune à ce problème pour WP, mais en pratique, je déteste ça. Il produit HTML ballonné et CSS monolithique:/

Réponse: Vous pouvez utiliser un fichier de modèle attribué à un certain nombre de pages à ajouter CSS/Javascript spécifique comme ceci:

<?php 
function my_scripts_method() { 
    wp_deregister_script('jquery'); 
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'); 
    wp_enqueue_script('jquery'); 
}  

add_action('wp_enqueue_scripts', 'my_scripts_method'); 
?> 

Source: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

+0

+1 pour votre haine ... –

Questions connexes