Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118

    problema con sidebar condizionata - WORDPRESS

    Ciao a tutti, sto impazzendo su un problema wordpress, spero che qualcuno di voi mi dia qualche indicazione giusta. Sto cercando di fare in modo che quando carico un articolo, la sidebar cambi in funzione del tipo di categoria di appartenenza dell'articolo.

    ho fatto una cosa del genere:
    codice:
    <?php
    
    	if (is_tag('laghi')){
    		include(TEMPLATEPATH."/sidebar_natura.php");
    	}else{
    		include(TEMPLATEPATH."/sidebar.php");
    	}
    	?>
    oppure

    codice:
    <?php
    
    	if (is_category('natura')){
    		include(TEMPLATEPATH."/sidebar_natura.php");
    	}else{
    		include(TEMPLATEPATH."/sidebar.php");
    	}
    	?>
    ma non riesco a caricare la sidebar alternativa.

    Funziona regolarmente solo se richiamo l'articolo cosi:

    codice:
    <?php
    
    	if (is_single('garda')){
    		include(TEMPLATEPATH."/sidebar_natura.php");
    	}else{
    		include(TEMPLATEPATH."/sidebar.php");
    	}
    	?>
    dove sta il problema?

    grazie

    Lory

  2. #2
    is_tag e is_category, come recita la documentazione, controllano se la pagina chiamata è un archivio per tag o per categoria, non se il post appartiene a quel tag o a quella categoria.

    Per far quello devi controllare i valori del post.
    Vedi http://codex.wordpress.org/The_Loop, ci sono alcuni tag come the_category che puoi usare. Alcuni ritornano liste formattate come the_category), altri solo il dato.

    E' probabile comunque che dovrai usare una funzione php per leggere il valore dal post.

  3. #3
    Dipende dal numero di categorie che hai, se non sono molte potresti ad esempio utilizzare:
    (Esempio ristretto ad una sola categoria da differenziare)

    codice:
    <?php
     if ( have_posts() ) { the_post(); rewind_posts(); }
     if ( in_category(ID della tua categoria) ) {
     include(TEMPLATEPATH . '/single2.php');
     } else {
     include(TEMPLATEPATH . '/single1.php');
     }
     ?>

    In single1.php e single2.php metti poi i richiami a 2 diverse sidebar

    OPPURE

    nel tuo file single.php, al posto del richiamo alla sidebar
    codice:
    <?php get_sidebar(); ?>
    puoi utilizzare:

    codice:
    <?php
    $post = $wp_query->post;
    if (in_category(ID della tua categoria)) {
    include TEMPLATEPATH.'/sidebar.php';
    }
    else
    {
    include TEMPLATEPATH.'/sidebar2.php';
    }
     			        ?>
    Oppure se hai più categorie che devono mostrare la stessa sidebar:

    codice:
    <?php
    $post = $wp_query->post;
    if (in_category(1)||in_category(2)||in_category(3)) {
    include TEMPLATEPATH.'/sidebar.php';
    }
    else
    {
    include TEMPLATEPATH.'/sidebar2.php';
    }
     			        ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.