• User

    Aggiungere un testo in ogni Categoria, solo nella prima pagina?

    Salve a tutti,
    Sto cercando di apportare delle modifiche al mio template wp, chiedo aiuto agli esperti di php perché son davvero alle prime armi..
    Il mio obiettivo è che per ogni categoria vorrei avere un piccolo testo di presentazione (diverso per ognuna di esse), solo nella prima pagina della Categoria. Mi sono documentata e ho trovato queste istruzioni (codex.wordpress.org/Category_Templates) da seguire per ottenere quel risultato.
    Sto seguendo 'Different text on some category pages' e 'text displaying only on first page of archive'.
    Mi suggerisce di aggiungere dei codici fuori dal loop (outside the loop) e above the loop (sopra al loop).
    Qual è la posizione precisa in cui devo metterli? vi indico la bozza di php sui cui devo lavorare..
    Esempio: ho due categorie 'arredamento casa' ed 'arredamento negozi'

    [PHP]<?php get_header(); ?>

                        <div id="content">
    

    <?php if (is_category('arredamento casa')) : ?><p>This is the text to describe category arredamento casa </p><?php elseif (is_category('arredamento negozi')) : ?><p>This is the text to describe category arredamento negozi</p><?php else : ?><p>This is some generic text to describe all other category pages, I could be left blank</p><?php endif; ?>
    <?php if ( $paged < 2 ) : ?><p>Text for first page of Category archive.</p><?php else : ?><p>Text for subsequent pages of Category.Can be left out.</p><?php endif; ?> <?php if (have_posts()) : ?>

                                   <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
                                               <h3 class="block-title">
                                               <?php if ( is_day() ) : ?>
                                                           <?php printf( __( 'Daily Archives: %s', 'delicacy' ), '<span>' . get_the_date() . '</span>' ); ?>
                                               <?php elseif ( is_month() ) : ?>
                                                           <?php printf( __( 'Monthly Archives: %s', 'delicacy' ), '<span>' . get_the_date( 'F Y' ) . '</span>' ); ?>
                                               <?php elseif ( is_year() ) : ?>
                                                           <?php printf( __( 'Yearly Archives: %s', 'delicacy' ), '<span>' . get_the_date( 'Y' ) . '</span>' ); ?>
                                               <?php elseif ( is_category() )  : ?>
                                                           <?php _e( 'Blog Archives for category', 'delicacy' ) ?> <?php single_cat_title();  ?>
                                               <?php elseif ( is_tag() ) : ?>
                                                           <?php _e( 'Blog Archives for tag', 'delicacy' ) ?> <?php single_tag_title(); ?>
                                               <?php else : ?>
                                                           <?php _e( 'Blog Archives', 'delicacy' ); ?>
                                               <?php endif; ?>
                                               </h3>
        <div class="post-list">
    
                                   <?php while (have_posts()) : the_post(); ?>
                                  
                                   <div id="post-<?php the_ID(); ?>" <?php post_class('list-post-item'); ?>>
    
                                               <?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) { ?>
                                               <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a>
                                               <?php } ?>
                                               <h2><a href="<?php echo get_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
                                               <div class="entry-meta">
                    <span class="date"><?php the_time( get_option('date_format') ); ?></span>
                    <span class="comments"><?php comments_popup_link(__('No comments','delicacy'), __('1 comment','delicacy'), __('Comments: %','delicacy')); ?></span>
                    <?php if(get_the_title() == '') : ?>
                        <a href="<?php the_permalink(); ?>" class="thepermalink" title="<?php _e( 'Permalink', 'delicacy' ); ?>"><?php _e( 'Permalink', 'delicacy' ); ?></a>
                    <?php endif; ?>
                </div>
    
                                               <?php the_excerpt(); ?>
    
                                   </div>
                        <div class="deco-line"></div>
    
                                   <?php endwhile; ?>
                <?php
                    if(function_exists('wp_pagenavi')) :
                        wp_pagenavi(); 
                    else :
                ?>
                    <div class="wp-pagenavi">
                        <div class="alignleft"><?php next_posts_link('&laquo; '.__('Previous Entries','delicacy')) ?></div> 
                        <div class="alignright"><?php previous_posts_link(__('Next entries','delicacy').' &raquo;') ?></div>
                    </div>
                <?php endif; ?>
       
        <?php else : ?>
    
                        <h3 class="block-title"><?php _e('Not found', 'delicacy'); ?></h3>
    
            <?php endif; ?>
    
                                   </div><!-- end #post-list -->
            </div><!-- end #content -->
    

    <?php get_sidebar(); ?>

            </div><!-- end-wrapper -->
    

    <?php get_footer(); ?>
    [/PHP]

    La posizione è corretta? Qualcuno mi può aiutare?? Grazie!!! 😉


  • Moderatore

    Ciao Katerine,
    secondo me quel sistema è troppo complicato, adatto se hai poche categorie ma se ne avessi tante? Crei una if per ognuna di esse?

    Io farei così, c'è la funzione nativa di wordpress dove puoi inserire un testo per ogni categoria che crei dal pannello di controllo: Articoli > categorie quindi basta che aggiungi questo codice prima del loop, ovvero prima di "if have_post".

    [PHP]
    <?php if ( $paged < 2 ) : echo category_description(); endif; ?> [/PHP]

    Non ho avuto tempo di provarlo ma dovrebbe funzionare, provalo e dimmi se risolve il tuo problema 😄

    Ciao
    Enea


  • User

    Giustissima la tua osservazione, infatti mi stavo chiedendo come potessi gestire più agevolmente molte categorie.
    Seguendo il tuo suggerimento, quando vado in Articoli > categorie dove devo inserire questo codice precisamente?
    Solitamente queste modifiche le faccio al template del tema..(tieni presente che nel template ho solo un archive.php e dovrei creare un eventuale category.php)
    Mi puoi aiutare? Grazie 🙂 🙂


  • Moderatore

    In articoli > categorie c'è il campo vuoto "descrizione", li inserisci il testo che vuoi mostrare, la riga di codice invece la inserisci nel tema dentro il loop nella posizione dove vuoi che sia mostrata la descrizione, il file archive.php solitamente è già sufficiente per mostrare le pagine tag, archivio ecc ecc.

    Se hai altre domande chiedi pure.

    Ciao
    Enea


  • User

    Grazie Enea! Quindi vado ad inserire quel codice nel loop di archive.php senza creare category.php?
    che intendi per 'dentro il loop nella posizione dove vuoi che sia mostrata la descrizione'?
    Io vorrei ottenere:

    NOME CATEGORIA
    Descrizione xxxxxxxxxxxxxxxx

    E sotto l'elenco post.
    scusa ma vorrei essere sicura di non far danni 🙂


  • Moderatore

    Postami il codice del loop che hai nel tema.

    Ciao
    Enea


  • User

    Sei gentilissimo! questo è il mio file archive.php

    [PHP]<?php get_header(); ?>

        <div id="content">
        <?php if (have_posts()) : ?>
    
             <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
                <h3 class="block-title">
                <?php if ( is_day() ) : ?>
                    <?php printf( __( 'Daily Archives: %s', 'delicacy' ), '<span>' . get_the_date() . '</span>' ); ?>
                <?php elseif ( is_month() ) : ?>
                    <?php printf( __( 'Monthly Archives: %s', 'delicacy' ), '<span>' . get_the_date( 'F Y' ) . '</span>' ); ?>
                <?php elseif ( is_year() ) : ?>
                    <?php printf( __( 'Yearly Archives: %s', 'delicacy' ), '<span>' . get_the_date( 'Y' ) . '</span>' ); ?>
                <?php elseif ( is_category() )  : ?>
                    <?php _e( 'Blog Archives for category', 'delicacy' ) ?> <?php single_cat_title();  ?>
                <?php elseif ( is_tag() ) : ?>
                    <?php _e( 'Blog Archives for tag', 'delicacy' ) ?> <?php single_tag_title(); ?>
                <?php else : ?>
                    <?php _e( 'Blog Archives', 'delicacy' ); ?>
                <?php endif; ?>
                </h3>
        <div class="post-list">
    
            <?php while (have_posts()) : the_post(); ?>
            
            <div id="post-<?php the_ID(); ?>" <?php post_class('list-post-item'); ?>>
    
                <?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) { ?>
                <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a>
                <?php } ?>
                <h2><a href="<?php echo get_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
                <div class="entry-meta">
                    <span class="date"><?php the_time( get_option('date_format') ); ?></span>
                    <span class="comments"><?php comments_popup_link(__('No comments','delicacy'), __('1 comment','delicacy'), __('Comments: %','delicacy')); ?></span>
                    <?php if(get_the_title() == '') : ?>
                        <a href="<?php the_permalink(); ?>" class="thepermalink" title="<?php _e( 'Permalink', 'delicacy' ); ?>"><?php _e( 'Permalink', 'delicacy' ); ?></a>
                    <?php endif; ?>
                </div>
    
                <?php the_excerpt(); ?>
    
            </div>
            <div class="deco-line"></div>
    
            <?php endwhile; ?>
                <?php
                    if(function_exists('wp_pagenavi')) :
                        wp_pagenavi(); 
                    else :
                ?>
                    <div class="wp-pagenavi">
                        <div class="alignleft"><?php next_posts_link('&laquo; '.__('Previous Entries','delicacy')) ?></div> 
                        <div class="alignright"><?php previous_posts_link(__('Next entries','delicacy').' &raquo;') ?></div>
                    </div>
                <?php endif; ?>
        
        <?php else : ?>
    
        <h3 class="block-title"><?php _e('Not found', 'delicacy'); ?></h3>
    
    <?php endif; ?>
    
            </div><!-- end #post-list -->
    </div><!-- end #content -->
    

    <?php get_sidebar(); ?>

    </div><!-- end-wrapper -->
    

    <?php get_footer(); ?>

    [/PHP]


  • Moderatore

    Quello che devi fare è copiare questo codice appena dopo il "while" più o meno alla 24esima riga del tuo file
    [PHP] <?php if ( $paged >= 2 ) : echo ""; else : echo category_description(); endif; ?>[/PHP]

    Ho fatto alcune modifiche a quello precedente poiché non funzionava a dovere, con questo vedi la descrizione solo ed esclusivamente nella prima pagina dove sono mostrati gli ultimi articoli, nelle altre invece non viene mostrata.

    Dimmi se funziona tutto correttamente.

    Ciao
    Enea


  • User

    Ciao Enea,
    ho seguito la tua guida per inserire un testo prima di una categoria e la cosa funziona a metà, nel senso che è presente in tutte le pagine della categoria, mentre sarebbe utile averlo solo nella prima pagina di quella specifica categoria.
    Per darti l'idea (automotives.altervista.org/le-interviste/) che come vedrai ha un testo che si va a ripetere anche sulle pagine successive.

    Ti incollo anche archive.php

    
    <?php get_header(); ?>
    
        <div id="content">
        
            <?php get_template_part('includes/breadcrumbs'); ?>
    
    <?php if(is_category('955')){
    
    echo "<div class='testo-interviste'>
    
    <h3><center>Le Interviste</center></h3>
    <br>
    Abbiamo chiesto ai più importanti Manager ed Opinion Leader del settore Automotive, cosa ne pensassero del futuro prossimo.
    
    Quelli che leggerete qui sotto sono i più temerari, coloro i quali hanno la visione certa del futuro, esatta o sbagliata che sia, hanno avuto la forza di mettere nero su bianco le loro convinzioni, senza aspettare che passasse il carro dei vincitori.
    Sarà bello fra qualche anno leggere queste righe e vedere chi e come è stato più &quotvisionaro&quot degli altri.
    
    Tutti vinceranno il Premio di &quotessersi messi in gioco&quot, cosa che non è da tutti!
    <center>******</center><br><br>
    
    </div>";
    } ?>
    
    
    
    <?php   if ( $paged >= 2 ) :        echo "";         else :         echo category_description();               endif; ?>        
     
            
    <?php if (have_posts()) : while ( have_posts() ) : the_post() ?>
            
     
    
                <?php get_template_part('includes/loop'); ?>
        
            <?php endwhile; ?>
    
             
            <div class="clear"></div>
            
            <?php if (function_exists('wp_pagenavi')) wp_pagenavi(); else { ?>
            
                <div class="pagination">
                    <div class="left"><?php previous_posts_link(__('Newer Entries', 'themejunkie')) ?></div>
                       <div class="right"><?php next_posts_link(__('Older Entries', 'themejunkie')) ?></div>
                    <div class="clear"></div>
                </div> <!-- .pagination -->
                
            
    <?php } ?> 
            <?php else : ?>
    
    
            <?php endif; ?>
            
            
            
        </div> <!-- #content -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    
    

    Mi potresti aiutare? Te ne sarei grato

    Pietro


  • Moderatore

    Ciao pietmon e benvenuto sul forumGT,
    il testo che vuoi mostrare lo devi inserire nel campo description che trovi nella categoria, la posizione è "Articoli > Categorie" clicca modifica sulla categoria dove vuoi far visualizzare il testo e nella pagina che ti i apre lo vai ad inserire nel campo description, ora ci penserà la funzione category_description() a stampare tutto.
    Ricordati di togliere quello nell'HTML del tuo file.

    Se hai altri problemi chiedi pure 🙂

    Ciao
    Enea


  • User

    Ciao Enea e grazie per il benvenuto e la risposta.
    Si in effetti hai perfettamente ragione e mi sono dimenticato di dirti che il testo mi serve con la formattzione che vedi ora. Con le prove fatte ieri, perdevo la formattazione mettendo il testo nel box descrizione.
    Ora ri provo con calma e ti faccio sapere.
    Intanto grazie.


  • User

    @pietmon said:

    Ciao Enea e grazie per il benvenuto e la risposta.
    Si in effetti hai perfettamente ragione e mi sono dimenticato di dirti che il testo mi serve con la formattzione che vedi ora. Con le prove fatte ieri, perdevo la formattazione mettendo il testo nel box descrizione.
    Ora ri provo con calma e ti faccio sapere.
    Intanto grazie.

    Infatti ho appena aggiunto il testo, nel box descrizione della categoria. Come puoi vedere (le interviste, nella sidebar sotto il logo) il testo viene fuori senza formatttazione.

    Invece è perfetto il fatto che viene solo sulla prima pagina.

    Come posso fare per formattare il titolo e anche qualche cosa nel testo? (almeno il carattere, qualche grassetto e qualche corsivo.

    Grazie


  • Moderatore

    In questo caso sostituisci echo category_description(); con echo " TUO TESTO CON FORMATTAZIONE ";

    Ciao
    Enea


  • User

    Perfetto, funziona perfettamente!
    Ora però la mia domanda è....se devo farlo per altri 2 o 3 categorie come devo fare?

    Per ognuna metto la descrizione nella categoria e poi?

    Grazie ancora
    Ciao Pietro


  • Moderatore

    Per ogni categoria cambia il testo?

    Ciao
    Enea


  • User

    Ho trovato questo plugin wordpress.org/support/plugin/allow-html-in-category-descriptions

    Che ne dici? potrebbe risolvere il problema alla radice, giusto?


  • Moderatore

    Allora per ogni categoria inserisci il codice in questo modo:

    [PHP]

    <?php if($paged >= 2){
    echo "";
    }elseif(is_category('ID_category_x')){
    echo " TUO TESTO CON FORMATTAZIONE ";
    }elseif(is_category('ID_category_x')){
    echo " TUO TESTO CON FORMATTAZIONE ";
    }elseif(is_category('ID_category_x')){
    echo " TUO TESTO CON FORMATTAZIONE ";
    }?>

    [/PHP]

    Dove ID_category_x è l'ID della categoria dove vuoi far visualizzare il testo.

    Forse esiste un modo più elegante per fare la stessa cosa ma così fa il suo sporco lavoro 🙂

    (Ovviamente togli tutto quello che hai messo prima)

    Non conosco quel plugin quindi non saprei se possa risolvere, poi io preferisco inserire a mano quando posso.

    Prova e dimmi se funziona 🙂

    Ciao
    Enea


  • User

    NBon va mi restituisce questo errore:

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /membri/automotives/wp-content/themes/newswire/archive.php on line 18

    Questo il file php

    
    <?php get_header(); ?>
    
        <div id="content">
        
            <?php get_template_part('includes/breadcrumbs'); ?>
    
     
    <?php if($paged >= 2){
    echo "";
    }
    
    
    elseif(is_category('955')){
    
    echo " Le Interviste
    
    Abbiamo chiesto ai più importanti Manager ed Opinion Leader del settore Automotive, cosa ne pensassero del futuro prossimo. Quelli che leggerete qui sotto sono i più temerari, coloro i quali hanno la visione certa del futuro, esatta o sbagliata che sia, hanno avuto la forza di mettere nero su bianco le loro convinzioni, senza aspettare che passasse il carro dei vincitori.
    Sarà bello fra qualche anno leggere queste righe e vedere chi e come è stato più "visionaro" degli altri.
    Tutti vinceranno il Premio di "essersi messi in gioco", cosa che non è da tutti!  ";
    }
    
    elseif(is_category('956')){
    
    echo "<h3>Sviluppo Rete</h3><br>
    Questa pagina raccoglie tutti gli Articoli, in sequenza cronologica, che trattano argomenti inerenti il mondo della Distribuzione Selettiva dell'Auto.<br>
    Dalle Normative Europee, agli Standards qualitativi e quantitativi, dal Rapporto tra Casa e Dealers, ai Riparatori Ufficiali e a quelli Indipendenti, ai Ricambisti, alla concorrenza. <br> Sono riflessioni sull'oggi, nuove idee e proposte per il futuro; per il professional sia esso Senior che Junior.<br><br>
    ******<br>";
    }
    
    elseif(is_category('1266')){
    
    echo "<h3>Sanzioni Antitrust</h3><br>
    
    L?<b>AGCM</b>, <b>Autorità Garante della Concorrenza e del Mercato</b>, nota come <b>Antitrust</b>, è sorta in Italia nel 1990.<br><br>
    E? un?istituzione indipendente, che prende le proprie decisioni esclusivamente sulla base della Legge, senza possibilità di ingerenze da parte del Governo né di altri organi politici. Tutela il <b>rispetto delle regole</b> vietando le intese tra imprese, abusi di posizione dominante e le concentrazioni capaci di condizionare la libera concorrenza.<br><br>
    Dal <b>2007</b> è compito dell?Antitrust <b>tutelare i consumatori dalle pratiche commerciali scorrette delle imprese e dalla pubblicità ingannevole</b>; puntando a garantire che il confronto, sul mercato, avvenga lealmente.<br>
    Il volume dell'attività dell'<b>AGCM dal 2002</b>, anno di nascita del nuovo quadro normativo per la Garanzia, nel settore Auto, ha sanzionato gran parte dello &quotspettro&quot dei comportamenti scorretti, ma restano aspetti non ancora considerati.<br><br>
    La <b>prima sanzione economica</b> è stata emanata solo nel <b>maggio 2006</b>; fino a quel momento i provvedimenti hanno implicato costi di &quotcomunicazione&quot e &quotimmagine&quot, ma non sanzioni economiche.<br>
    Ad oggi la maggioranza dei procedimenti (quasi il 65%)  è sorta su singole denunce di Consumatori. L?<b>attività sanzionatoria</b> è diventata particolarmente incisiva a partire dal <b>2007</b>, grazie al <b>D.lgs. 146/2007</b>.<br><br>
    
                                                                                                               
    <I>nda</I>: Le tabelle riportate negli articoli, rappresentano solo una sintesi degli originali. Le delibere sono tutte pubbliche e disponibili nel sito dell?AGCM; con i relativi numeri di provvedimento è possibile consultare la documentazione in originale
    
    <br><br>
    ******<br>";
    }
    ?> 
            
    <?php if (have_posts()) : while ( have_posts() ) : the_post() ?>
            
     
    
                <?php get_template_part('includes/loop'); ?>
        
            <?php endwhile; ?>
    
             
            <div class="clear"></div>
            
            <?php if (function_exists('wp_pagenavi')) wp_pagenavi(); else { ?>
            
                <div class="pagination">
                    <div class="left"><?php previous_posts_link(__('Newer Entries', 'themejunkie')) ?></div>
                       <div class="right"><?php next_posts_link(__('Older Entries', 'themejunkie')) ?></div>
                    <div class="clear"></div>
                </div> <!-- .pagination -->
                
            
    <?php } ?> 
            <?php else : ?>
    
    
            <?php endif; ?>
            
            
            
        </div> <!-- #content -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    
    

  • User

    Fermo là....funziona!
    Non so il motivo, ma il testo delle interviste aveva qualcosa che bloccava tutto. Forse gli spazi dopo gli apici.....che dirti GRZAIE, erano 2 anni che non riuscivo a risolvere questo problema!


  • Moderatore

    Ottimo 🙂 sono contento che tu abbia risolto 🙂

    Per qualunque altro dubbio o problema il forum è qui 🙂

    Ciao
    Enea