• Risolto leonardo2

    (@leonardo2)


    Salve a tutti,
    sto realizzando un sito wordpress in locale con xampp. Da diversi giorni mi sto confrontand con un problema che non riesco a superare. Utilizzo le categorie e i menù per poter pubblicare specifici artitcoli in una specifica pagina del sito.
    Il problema è che mi ritrovo una copia dell’articolo anche nella home page. Vorrei che la home page fosse una pagina statica.
    Ho provato a settarla da impostazioni come pagina statica ma non cambia niente, mi ritrovo gli articoli che pubblico ancora lì.
    Ho provato a seguire la procedura indicata di seguito. Dopo averla applicati effettivamente i vecchi articoli della home page non compaiono, ma se ne pubblico uno nuovo si ripresenta nella Home page. Esiste una soluzione per avere una home page statica con un solo articolo fisso ?

    Ecco la procedura seguita infruttuosamente:
    La prima cosa da fare per ottenere una home personalizzata è crearla manualmente nella cartell’apposita cartella e assegnarle un template. Ecco come procedere passo passo:
    1. Vai nella cartella del tema “attivato” che che stai utilizzando e fai una copia del file index.php;
    2. Apri la copia del file index.php creata e inserisci questo codice in alto, in testa al file:
    3. <?php
    4. /*
    5. Template Name: index
    6. */
    ?>
    7. Salva il file copia di index.php appena modificato rinominandolo home.php (oppure homepage.php, se nel tema dovesse esistere già un file chiamato home.php);
    8. Accedi in WordPress come amministratore e crea una nuova pagina, dalle come titolo, ad esempio, “Home”. Non scrivere nulla nell’area dei contenuti della pagina, lasciala bianca, individua a destra il box Attributi pagina>Modello e seleziona dal menu a tendina la voce index. In questo modo hai assegnato il template denominato index alla pagina che stai creando, che ha come titolo “Home” e che sarà la nuova home page del tuo sito;
    9. Pubblica la pagina appena creata;
    10. Vai in Impostazioni>Lettura e da La pagina iniziale mostra scegli Una pagina statica e quindi seleziona dal menu a tendina subito sotto la pagina con il titolo “Home“;
    11. A questo punto la tua nuova home page (“Home”) dovrebbe avere lo stesso layout di prima, mantenendo funzionalità e aspetto, ma senza più mostrare gli articoli. Se ciò non si fosse verificato prova a vedere dal pannello di controllo se se nella pagina “Home” creata in Pagine e impostata come nuova home page, sotto all’area dei contenuti lasciata vuota, ci sono delle impostazioni consentite dal tuo tema per personalizzarla (eventualmente escludendo la visualizzazione dei post). In alternativa dovresti agire direttamente sul file home.php per personalizzarne il layout.

Stai visualizzando 4 risposte - dal 1 al 4 (di 4 totali)
  • Moderatore Gloria Liuni

    (@glorialchemica)

    Ciao @leonardo2,
    non ho capito bene quale sia il risultato finale che vuoi ottenere nella Homepage.

    La Homepage ha la possibilità di far visualizzare:
    – gli ultimi articoli
    – una pagina statica.
    – (opzionale) una pagina personalizzata se il tema lo prevede.

    In Home page vuoi far visualizzare un solo articolo? Se sì, quale? Ultimo articolo, articolo in evidenza,…

    Quale tema stai utilizzando?

    Chi ha creato la discussione leonardo2

    (@leonardo2)

    Grazie per avermi risposto.
    Nella Home Page vorrei visualizzare un solo articolo fisso.
    Il tema che sto utilizzando è Fooding.

    Moderatore Gloria Liuni

    (@glorialchemica)

    Ciao @leonardo2,
    il tema che stai utilizzando usa il file front-page.php.
    Questo file inibisce le funzioni di Impostazioni > lettura > La tua homepage mostra…

    Qui trovi la documentazione sul Template Hierarchy di WP.

    Per personalizzare la tua home page devi pertanto:
    – rinominare il file front-page.php (ad es: disable-front-page.php, questo non farà più funzionare questo file)

    – creare un file nominato template-mytemplate.php (ad es. template-miahome.php) che devi salvare nella root principale.

    – nel file template-mytemplate.php vai a incollare tutto il codice che trovi nel file page.php e in cima, nella parte commentata scrivi:

    <?php
    /**
     * Template Name: Home personalizzata
     */

    – la parte dove c’è scritto il seguente codice va cancellata

    <?php
    while ( have_posts() ) : the_post();
    
    get_template_part( 'template-parts/content', 'page' );
    
    // If comments are open or we have at least one comment, load up the comment template.
    if ( comments_open() || get_comments_number() ) :
    	comments_template();
    endif;
    
    endwhile; // End of the loop.
    ?>

    – inserisci nel punto dove hai appena cancellato il tuo loop personalizzato, ad esempio questo (lo dovrai personalizzare come desideri in base anche alle classi del tema)

    <!-- Start Content Last 1 post on HomePage -->
    				
    <?php if ( have_posts()) : ?>
      <?php	$the_query2 = new WP_Query( 'posts_per_page=1' ); 
    				
    	while ( $the_query2->have_posts() ) : $the_query2->the_post(); ?>
    	<article class="home-blog">
    	   <div class="post-blog">
    	      <?php  if ( has_post_thumbnail() ) { ?>
    
    	      <a href="<?php the_permalink(); ?>"> <?php the_post_thumbnail('thumbnail'); ?></a>
    		<?php } ?>
    
    		<a class="post-blog-titile" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title('<h3 class="title-home-post">', '</h3>'); ?></a>
    
    		<?php echo the_excerpt();?>	
    	</div>
    			
         </article>
    </div>
    				
     <?php endwhile; ?>
    				
    <?php endif; //* end loop  ?> 
    
    <!-- end Content Last -->

    La parte che fa visualizzare solo l’ultimo articolo scritto è ( 'posts_per_page=1' ).

    Qui trovi i riferimenti sul loop di WordPress .

    A questo punto nella tua pagina HOME troverai il template che hai creato e potrai applicarlo alla pagina.

    Spero di esserti stata di aiuto.

    • Questa risposta è stata modificata 6 anni, 4 mesi fa da Gloria Liuni.
    Chi ha creato la discussione leonardo2

    (@leonardo2)

    Grazie per il tuo aiuto fondamentale. Ho modificato leggermente il tuo codice fornendo all’oggetto new WP_Query( ‘posts_per_page=1’ ) anzichè il metodo posts_per_page=1, il parametro relativo all’id della categoria associata all’articolo. In questo modo posso visualizzare uno specifico articolo e non l’ultimo.

    $the_query2 = new WP_Query( ‘category_name=articolo_home’ );

    forse il loop si potrebbe semplificare o addirittura eliminare ma non ho le conoscenze di programmazione per poterlo fare.
    Grazie davvero.

Stai visualizzando 4 risposte - dal 1 al 4 (di 4 totali)
  • Il topic ‘Impedire la pubblicazione di articoli nella Home Page’ è chiuso a nuove risposte.