Uno dei nostri lettori ci ha chiesto come creare modelli personalizzati per i singoli post in WordPress.
Su WPBeginner, abbiamo aiutato molti proprietari di siti web a migliorare i loro blog con layout unici per i singoli post. I modelli personalizzati per i singoli post ti consentono di utilizzare design diversi per i tuoi post del blog, dando a ciascuno un aspetto distinto. Molti temi WordPress offrono alcuni modelli di pagina, ma puoi anche crearne di tuoi se necessario.
In questo articolo, ti mostreremo diversi metodi per creare facilmente modelli personalizzati per i singoli post in WordPress, in modo che tu possa scegliere quello che funziona meglio per le tue esigenze.

Quando hai bisogno di un modello personalizzato per un singolo post?
A volte, potresti volere un aspetto diverso per determinati post sul tuo sito web WordPress. Ad esempio, potresti voler utilizzare un layout diverso per gli articoli in primo piano o per le storie di una particolare categoria.
È qui che hai bisogno di un modello personalizzato per un singolo post in WordPress.
Per impostazione predefinita, WordPress utilizza il modello per i singoli post basato sulla gerarchia dei modelli di WordPress. Tutti i temi sono dotati di un modello single.php, e questo viene utilizzato per impostazione predefinita per tutti i tuoi singoli post.
Alcuni temi potrebbero includere anche modelli aggiuntivi o scelte di layout che puoi utilizzare.
È molto simile a creare un modello di pagina personalizzato. La maggior parte dei temi WordPress è dotata anche di modelli di pagina che puoi utilizzare durante la modifica di un post o di una pagina in WordPress.

Detto questo, diamo un'occhiata a come creare facilmente modelli personalizzati per post singoli in WordPress. Ti mostreremo diversi metodi, in modo che tu possa utilizzare quello che funziona meglio per te.
- Creare modelli per post singoli utilizzando l'editor a blocchi
- Creare modelli personalizzati per post singoli utilizzando SeedProd
- Utilizzare le impostazioni del tema per creare layout per post singoli
- Creare manualmente modelli personalizzati per post singoli con codice
- Creare modelli personalizzati per post singoli per categoria
- Creare modelli personalizzati per post singoli per autori specifici
Creare modelli per post singoli utilizzando l'editor a blocchi
Questo metodo in realtà non crea un modello di post ed è limitato nella flessibilità. Tuttavia, è il modo più semplice per salvare i tuoi layout di post singoli e poi riutilizzarli.
L'editor a blocchi predefinito di WordPress include una funzionalità integrata che ti consente di salvare e riutilizzare i blocchi. Uno di questi blocchi riutilizzabili è il blocco gruppo.
Il blocco gruppo ti consente di raggruppare diversi blocchi e interi layout di post in un unico gruppo. Puoi quindi salvare questo blocco gruppo e riutilizzarlo nei tuoi altri post.
Vediamo come utilizzare il blocco gruppo per salvare i tuoi modelli di post personalizzati.
Innanzitutto, devi creare un nuovo post in WordPress. Dopodiché, aggiungi semplicemente un blocco gruppo all'area di contenuto.

Ora puoi iniziare ad aggiungere blocchi nel blocco gruppo per creare un layout di post singolo per il tuo blog WordPress.
Puoi aggiungere qualsiasi blocco desideri, inclusi colonne, media e testo, immagini di copertina e altro ancora.

Una volta soddisfatto del layout che hai creato, devi spostare il mouse verso l'alto e selezionare il blocco gruppo.
Fai semplicemente clic sull'icona del menu a tre punti e quindi seleziona l'opzione 'Aggiungi ai blocchi riutilizzabili'.

Successivamente, devi fornire un nome per il blocco riutilizzabile e quindi fare clic sul pulsante Salva. WordPress salverà ora il tuo blocco riutilizzabile, inclusi tutti i blocchi all'interno del blocco gruppo.
Puoi quindi modificare qualsiasi post esistente sul tuo sito web o crearne uno nuovo. Nella schermata di modifica del post, fai semplicemente clic sul pulsante Aggiungi nuovo blocco e cerca il tuo blocco salvato nella scheda 'Riutilizzabili'.

Aggiungi il blocco al tuo post e WordPress caricherà l'intero blocco gruppo con tutti i blocchi e le impostazioni così come li hai salvati.
Questo metodo ti permette di salvare i tuoi layout personalizzati. Tuttavia, non ti permette di cambiare il modo in cui il tuo tema gestisce i singoli post.
Se desideri maggiore flessibilità, continua a leggere il prossimo passaggio.
Creare modelli personalizzati per singoli post utilizzando SeedProd
Il modo più semplice per creare un modello personalizzato per singoli post è utilizzare SeedProd. È il miglior plugin per la creazione di siti web WordPress e può creare bellissimi layout di siti web e modelli personalizzati senza scrivere codice.
Puoi utilizzare il costruttore drag-and-drop di SeedProd per creare un tema WordPress completamente personalizzato, inclusi modelli personalizzati per singoli post.
La prima cosa che devi fare è installare e attivare il plugin SeedProd. Per maggiori dettagli, consulta la nostra guida passo passo su come installare un plugin WordPress.
Dopo l'attivazione, devi inserire la tua chiave di licenza. Puoi trovare queste informazioni nel tuo account sul sito web di SeedProd.

Dopodiché, è ora di creare un tema WordPress personalizzato. È molto più semplice di quanto sembri.
Creazione di un tema WordPress personalizzato
Innanzitutto, devi andare alla pagina SeedProd » Theme Builder. Qui, utilizzerai uno dei temi predefiniti di SeedProd come punto di partenza. Questo sostituirà il tuo tema WordPress esistente con un nuovo design personalizzato.
Puoi farlo cliccando sul pulsante 'Temi'.

Ti verrà mostrato un elenco di temi progettati professionalmente per diversi tipi di siti web. Ad esempio, ci sono modelli chiamati 'Modern Business', 'Marketing Agency' e 'Mortgage Broker Theme'.
Dai un'occhiata alle opzioni e seleziona quella che meglio si adatta alle tue esigenze facendo clic sull'icona del segno di spunta.

Una volta scelto un tema, SeedProd genererà tutti i modelli di tema di cui hai bisogno, incluso uno per le pagine singole e un altro per i post singoli.
Ogni modello è preimpostato con layout accattivanti e contenuti segnaposto facili da personalizzare.

Per saperne di più sulla creazione di un tema con SeedProd, consulta la nostra guida su come creare facilmente un tema WordPress personalizzato senza codice.
Personalizzazione del modello predefinito per i singoli post
SeedProd rende facile personalizzare il modello predefinito 'Singolo Post' utilizzando un page builder drag-and-drop.
Fai semplicemente clic sul link 'Modifica Design' che si trova sotto il modello. Questo aprirà il tuo modello di post nell'editor visivo di SeedProd.

L'editor visivo di SeedProd ha un layout a 2 colonne. Sulla sinistra, troverai blocchi e sezioni che puoi aggiungere al tuo design.
Sulla destra c'è un'anteprima del modello dove puoi vedere le tue modifiche in tempo reale.

È anche facile personalizzare il layout del tuo modello di post. Fai semplicemente clic su qualsiasi blocco per vedere le sue impostazioni nella colonna di sinistra.
Ad esempio, se fai clic sul titolo del post, potrai vedere le sue impostazioni. Ora puoi cambiare l'allineamento, la dimensione del carattere, il livello di intestazione e altro ancora.

Facendo clic sulla scheda Avanzate, puoi modificare i colori dei caratteri, lo spazio e altri stili.
Puoi aggiungere blocchi aggiuntivi trascinandoli dalla colonna di sinistra nella colonna di anteprima. SeedProd utilizza i tag del modello per recuperare contenuti dinamici come titoli di post, immagini in evidenza, commenti e altro ancora. Questo ti consente di aggiungere contenuti al modello senza dover modificare ogni post singolarmente.
Ad esempio, puoi aggiungere un blocco Post alla fine del contenuto del tuo post. Questo mostrerà i post recenti che i tuoi visitatori potrebbero voler leggere quando finiscono il post corrente. Questo blocco verrà mostrato automaticamente su tutti i post che utilizzano questo modello.

Successivamente, puoi modificare le impostazioni del blocco Post per personalizzare il contenuto che viene mostrato.
Ad esempio, puoi visualizzare contenuti da categorie specifiche, utilizzare un layout a due colonne e modificare il numero di post mostrati.

Sentiti libero di dedicare del tempo alla sperimentazione con diversi blocchi ed esplorando le loro impostazioni.
Dopo aver creato qualcosa che vorresti usare come modello per i tuoi post, è ora di salvarlo facendo clic sul pulsante verde ‘Salva’ nell'angolo in alto a destra. Dopodiché, puoi chiudere l'editor visuale di SeedProd facendo clic sull'icona di chiusura ‘X’.

Puoi personalizzare il resto del tuo tema WordPress nello stesso modo. Ma se hai bisogno di un piccolo aiuto, fai riferimento alla nostra guida passo passo su come creare un tema WordPress personalizzato con SeedProd.
Quando sei soddisfatto di come appare tutto, assicurati che l'interruttore ‘Abilita tema SeedProd’ sia impostato sulla posizione attiva. Il tuo sito WordPress utilizzerà ora il tuo tema SeedProd e il modello personalizzato per post singoli.

Utilizzo delle impostazioni del tema per creare layout personalizzati per i singoli post
Molti temi WordPress popolari sono dotati di impostazioni integrate per personalizzare l'aspetto del tuo modello di post singolo.
Se il tuo tema supporta queste impostazioni, le troverai nella schermata di modifica del post. Le opzioni disponibili possono variare a seconda del tema che stai utilizzando.
Ad esempio, il tema Astra offre opzioni di personalizzazione durante la modifica di un singolo post. Utilizzando queste opzioni, puoi cambiare le barre laterali, nascondere intestazioni, titoli, menu e altro ancora.

D'altra parte, molti dei migliori temi WordPress sono dotati di modelli pronti all'uso che puoi utilizzare.
Se il tuo tema include modelli per singoli post, li troverai nel pannello 'Modello' o 'Attributi del post' durante la modifica di un post.

Questi modelli sono layout completi che puoi utilizzare senza alcuna configurazione richiesta.
Creazione manuale di modelli personalizzati per singoli post con codice
Questo metodo è un po' avanzato in quanto richiede di modificare i file del tema, copiare e incollare codice e, facoltativamente, aggiungere CSS personalizzato. Se non l'hai mai fatto prima, consulta il nostro tutorial su come copiare e incollare codice in WordPress.
Innanzitutto, devi aprire un editor di testo semplice sul tuo computer, come Blocco note, e incollarci il seguente codice:
<?php
/*
* Template Name: Featured Article
* Template Post Type: post, page, product
*/
get_header(); ?>
Questo codice definisce un nuovo template chiamato ‘Featured Article’ e lo rende disponibile per i tipi di post, pagina e prodotto post types.
Dovresti salvare questo file come wpb-single-post.php sul tuo desktop. Successivamente, devi aggiungere il template al tuo sito WordPress. Per farlo, devi utilizzare un client FTP per caricare il file nella cartella del tuo tema corrente.
Ora, puoi accedere alla tua area di amministrazione di WordPress e creare o modificare un post. Scorri un po' verso il basso nella schermata di modifica del post e noterai un nuovo pannello ‘Template’ o una meta box ‘Attributi del post’ con un'opzione per selezionare il template.

Vedrai il tuo template personalizzato ‘Featured Article’ elencato lì.
Al momento, il tuo template è essenzialmente vuoto, quindi selezionarlo visualizzerà semplicemente una schermata bianca.
Risolviamo questo problema.
Il modo più semplice per farlo è copiare il codice dal file single.php del tuo tema e usarlo come punto di partenza. Dovrai aprire il file single.php e poi copiare tutto ciò che segue la riga get_header().
Successivamente, devi incollare questo codice alla fine del tuo file wpb-single-post.php. Ora puoi salvare questo file e caricarlo nuovamente sul tuo server.
Tuttavia, questo avrà lo stesso aspetto del tuo attuale template per post singoli. Ora puoi iniziare a apportare modifiche al tuo template personalizzato per post singoli.
Puoi aggiungere le tue classi CSS personalizzate, rimuovere le barre laterali, creare un modello a larghezza intera, o qualsiasi altra cosa tu desideri.
Creazione di modelli personalizzati per singoli post per categoria
Desideri utilizzare un modello personalizzato per singoli post basato sulle categorie? Ad esempio, puoi dare ai post della categoria viaggi un layout diverso rispetto ai post della categoria fotografia.
Puoi farlo utilizzando il SeedProd Theme Builder o il codice.
Creazione di modelli personalizzati per singoli post per categoria utilizzando SeedProd
In precedenza, abbiamo trattato come personalizzare il modello predefinito per singoli post del SeedProd Theme Builder. Ma non finisce qui. Con SeedProd, puoi aggiungere tutti i modelli di post personalizzati che desideri, come un layout diverso per ogni categoria di post.
Per aggiungere un nuovo modello per singoli post, fai semplicemente clic sul collegamento ‘Duplica’ sotto il modello di post originale. Verrà creato un nuovo modello chiamato ‘Single Post – Copy’ e aggiunto in cima alla pagina dei modelli del tema.

Puoi personalizzare il nuovo modello nello stesso modo in cui hai personalizzato in precedenza il modello predefinito per post singoli. Fai semplicemente clic sul link ‘Modifica design’ del modello e apporta le modifiche desiderate utilizzando l'editor visivo di SeedProd.
Una volta terminata la personalizzazione del modello, dovrai aggiungere alcune condizioni in modo che SeedProd sappia quali post devono utilizzare questo modello. In questo caso, vogliamo che venga visualizzato quando si visualizzano post all'interno di una singola categoria.

Puoi farlo facendo clic sul link ‘Modifica condizioni’ del modello e si aprirà una nuova finestra.
Qui puoi assegnare un nome e una priorità al modello. Il modello predefinito per post singoli ha una priorità di 0, quindi assicurati di assegnare a questo modello una priorità più alta in modo che venga visualizzato nelle categorie corrispondenti.

Sotto ‘Condizioni’, seleziona ‘Ha categoria’ dal secondo menu a discesa, quindi digita il nome della categoria nell'ultimo campo. Ad esempio, se desideri che solo i post della categoria fotografia utilizzino questo layout, digita ‘fotografia’.
Al termine, fai clic sul pulsante ‘Salva’ e ora questo modello verrà utilizzato per tutti i post nella categoria corrispondente.
Questo è il modo più semplice per creare più modelli di post singoli personalizzati in WordPress. Non richiede alcuna conoscenza di codice e non danneggerà accidentalmente alcun file del tema.
Creazione di modelli di post singoli personalizzati per categoria utilizzando il codice
Questo è un altro metodo per coloro che si sentono a proprio agio nell'aggiungere codice ai file del proprio tema.
Innanzitutto, devi aggiungere questo codice al file functions.php del tuo tema o a un plugin per snippet di codice.
/*
* Define a constant path to our single template folder
*/
define(SINGLE_PATH, TEMPLATEPATH . '/single');
/**
* Filter the single_template with our custom function
*/
add_filter('single_template', 'my_single_template');
/**
* Single template function which will choose our template
*/
function my_single_template($single) {
global $wp_query, $post;
/**
* Checks for single template by category
* Check by category slug and ID
*/
foreach((array)get_the_category() as $cat) :
if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
endforeach;
}
Questo codice verifica innanzitutto se WordPress sta richiedendo un singolo post. In tal caso, dice a WordPress di cercare il template nella cartella /single/ del tuo tema WordPress.
Ora, devi aggiungere i file di template definiti da questo codice.
Connettiti al tuo hosting WordPress utilizzando un client FTP o il File Manager in cPanel e vai su /wp-content/themes/la-tua-cartella-tema/.
All'interno della cartella del tuo tema corrente, devi creare una nuova cartella chiamata 'single'. Successivamente, devi aprire questa cartella e creare un nuovo file. Procedi e nomina questo file single-cat-{slug-categoria}. Sostituisci {slug-categoria} con lo slug effettivo della tua categoria.
Ad esempio, se hai una categoria chiamata 'Notizie', creerai il file single-cat-notizie.php. Se hai una categoria chiamata 'Consigli di viaggio', crea un template single-cat-consigli-di-viaggio.php, e così via.

Ora, questi file di template saranno completamente vuoti. Come punto di partenza, puoi copiare il contenuto del tuo file single.php dalla cartella del tuo tema e incollarlo all'interno di ciascuno di questi template. Dopodiché, dovrai modificare questi template per apportare le modifiche desiderate.
Una volta terminato, puoi visitare il tuo sito web e visualizzare un post. Utilizzerà il template che hai creato per la categoria in cui è archiviato questo post.
Ora, supponiamo che tu abbia un post archiviato in due categorie: Notizie e Consigli di viaggio. WordPress mostrerà automaticamente il template per 'Notizie' perché appare per primo in ordine alfabetico.
D'altra parte, se hai archiviato un post in una categoria e non hai creato un template per quella categoria, WordPress tornerà al template predefinito single.php del tuo tema.
Creazione di template personalizzati per singoli post per autori specifici
Supponiamo che tu voglia che i post scritti da un autore specifico appaiano diversi sul tuo sito web. Puoi farlo usando il codice seguendo la stessa tecnica che abbiamo mostrato per le categorie.
Innanzitutto, devi aggiungere questo codice al file functions.php del tuo tema o a un plugin per snippet di codice.
/**
* Define a constant path to our single template folder
*/
define(SINGLE_PATH, TEMPLATEPATH . '/single');
/**
* Filter the single_template with our custom function
*/
add_filter('single_template', 'my_single_author_template');
/**
* Single template function which will choose our template
*/
function my_single_author_template($single) {
global $wp_query, $post;
/**
* Checks for single template by author
* Check by user nicename and ID
*/
$curauth = get_userdata($wp_query->post->post_author);
if(file_exists(SINGLE_PATH . '/single-author-' . $curauth->user_nicename . '.php'))
return SINGLE_PATH . '/single-author-' . $curauth->user_nicename . '.php';
elseif(file_exists(SINGLE_PATH . '/single-author-' . $curauth->ID . '.php'))
return SINGLE_PATH . '/single-author-' . $curauth->ID . '.php';
}
Successivamente, dovresti connetterti al tuo sito web usando FTP o il file manager di cPanel in cPanel e poi andare su /wp-content/themes/your-theme-folder/. Se non hai già creato una cartella chiamata /single/ al suo interno, procedi e creala ora.
All'interno di questa cartella, devi creare un template usando il nome utente dell'autore nel nome del template. Ad esempio, single-author-johnsmith.php.
Questo template sarà vuoto, quindi puoi copiare e incollare il contenuto del template single.php del tuo tema e usarlo come punto di partenza.
Ora puoi visitare il tuo sito web per visualizzare un post creato da un autore specifico. Utilizzerà il template che hai creato.
Speriamo che questo articolo ti abbia aiutato a imparare come creare modelli personalizzati per post singoli in WordPress. Potresti anche voler imparare come monitorare i visitatori del sito web sul tuo sito WordPress, o vedere il nostro elenco di plugin WordPress indispensabili per far crescere il tuo sito.
Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Richard Watts
Non vedo l'opzione "Aggiungi ai blocchi riutilizzabili" nell'esempio Creazione di modelli per post singoli utilizzando l'editor a blocchi
Utilizzo del tema attivo
Supporto WPBeginner
Depending on the specific block you may see the option to add it to patterns instead which is likely what you are running into
Amministratore
allah ditta
Voglio creare un modello di post come wpbeginner è possibile?
Supporto WPBeginner
Se c'è una parte del nostro design che ti piace, potresti ricrearla sul tuo sito.
Amministratore
Jasmine
Ricevo questo messaggio quando provo a usare il codice:
Attenzione: call_user_func_array() si aspetta che il parametro 1 sia un callback valido, la funzione 'my_single_template' non è stata trovata o il nome della funzione non è valido.
Qualche idea sul perché?
Supporto WPBeginner
Dovresti assicurarti di aver copiato correttamente l'intero codice, abbiamo una guida che potrebbe aiutarti di seguito:
https://www.wpbeginner.com/beginners-guide/beginners-guide-to-pasting-snippets-from-the-web-into-wordpress/
Amministratore
Iulian
Tutto bene ma interrompe il file single.php predefinito.
In altre parole, questo "D'altra parte, se hai archiviato un post in una categoria e non hai creato un modello per quella categoria, allora WordPress tornerà al modello single.php predefinito del tuo tema." non sta funzionando.
Qualche soluzione?
Supporto WPBeginner
Potrebbe essere necessario contattare il supporto del tuo tema per assicurarti che non ci sia un modello diverso con cui stai avendo problemi. Per capire cosa intendiamo, potresti voler dare un'occhiata al nostro articolo qui sotto:
https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Amministratore
Thomas
Ciao, sto cercando di seguire il passaggio:
Apri il file single.php e poi copia tutto ciò che segue la riga get_header().
Sotto:
Creazione manuale di modelli personalizzati per post singoli in WordPress
Tuttavia, non ho alcuna funzione "get_header()" in quel file.
Supporto WPBeginner
Il tuo tema specifico potrebbe avere una codifica unica, ti consigliamo di contattare il supporto del tuo tema specifico che dovrebbe essere in grado di assisterti.
Amministratore
bob
Grazie per questo. Tutti i miei file generati automaticamente (autore, non trovato, ecc.) utilizzano il modello del mio sito, quindi inseriscono una sezione bianca con testo bianco sulla pagina. Inizia anche in cima alla pagina (quindi è testo bianco su sfondo bianco, per lo più nascosto dietro un'intestazione di pagina).
Credo che il tuo articolo mi aiuterà a risolvere questo pasticcio.
Grazie
Supporto WPBeginner
Our article should help and if you reach out to your theme’s support they may be able to assist as well
Amministratore
Jojo
Non riesco a trovare l'opzione modello in Beaver Builder.
Supporto WPBeginner
I modelli dovrebbero essere ancora trovati nella sezione in alto a destra nel pannello dei contenuti
Amministratore
John
Correttamente, pensando che una volta creato un file php di modello di post personalizzato, affinché funzioni come modello, devi comunque codificare il file php, poiché non c'è modo di salvare un nuovo post come modello. È corretto?
Grazie per il tuo aiuto.
Supporto WPBeginner
È corretto, per cambiare il modello, a meno che tu non stia usando un page builder, non c'è un metodo per impostarlo senza codificare.
Amministratore
Ali Jahani
Ciao
wpbeginner è moltoooooooooo buono
grazie per aver pubblicato il miglior articolo
Supporto WPBeginner
Glad you like our content
Amministratore
Gregory
Questo è un fantastico tutorial sui post personalizzati di WP.
Grazie per il tuo aiuto.
Supporto WPBeginner
You’re welcome, glad you found our tutorial helpful
Amministratore
Haripal Reddy
Ciao Autore,
Ho seguito i passaggi come hai menzionato. Ho CPT album. single-albums.php copiato lo stesso codice in un altro file wpb-single-albums.php e aggiunto codice di template come /*
* Nome template: template personalizzato
* Tipo post template: album
*/
e apportato alcune modifiche necessarie. Ma dopo aver selezionato questo template nella modifica del post, viene visualizzata la pagina predefinita (single-albums.php).
Come posso risolvere questo problema, per favore aiutami
Supporto WPBeginner
Potresti voler controllare il modello di lavoro corrente per assicurarti che il tipo di post sia corretto
Amministratore
Alice
Grazie per il tuo ottimo post. Ho 2 domande: i modelli di post singoli sono uguali ai modelli di tipi di post personalizzati? Se sono diversi, puoi mostrarmi come creare un modello di tipo di post personalizzato?
Supporto WPBeginner
Possono essere diversi se lo desideri, ma se ne crei uno specificamente per il tipo di post, altrimenti WordPress utilizzerà per impostazione predefinita il modello di post. Dovresti dare un'occhiata al nostro articolo qui: https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Amministratore
aziz
ciao
grazie per il post
ho fatto tutto e ha funzionato come volevo.
ma ho avuto un piccolo problema
dopo aver aggiunto il codice a function.php, single.php ha smesso di mostrare i dati
c'è qualcosa che posso fare?
Supporto WPBeginner
You would need to create the folder as we explain after the code in the article
Amministratore
Binesh
Ciao, grazie per il tuo tutorial...
Secondo il tuo tutorial ho creato un tipo di post personalizzato. Ma ora sto riscontrando un problema con i commenti. Durante l'invio del commento, viene reindirizzato alla ricerca...
Per favore, suggerisci una soluzione per questo..
Grazie in anticipo
Supporto WPBeginner
Se ti reindirizza a una pagina 404, dovresti dare un'occhiata al nostro articolo di risoluzione dei problemi qui: https://www.wpbeginner.com/wp-tutorials/how-to-fix-wordpress-posts-returning-404-error/
Amministratore
Mike
Salve.
I’m using this & enjoying it greatly!
However, I’m finding the following warning in my error logs around this code:
[warn] mod_fcgid: stderr: PHP Warning: Use of undefined constant SINGLE_PATH – assumed ‘SINGLE_PATH’ (this will throw an Error in a future version of PHP)
Qualche idea su come risolvere?
Il tuo snippet inizia con “define(SINGLE_PATH,…” quindi non sono sicuro di cos'altro fare qui.
Supporto WPBeginner
That error is saying it wants SINGLE_PATH to be surrounded by single quotes (”) which you can do for that warning
Amministratore
Jojo
Quindi ho seguito i tuoi passaggi e funziona per la nuova pagina singola dello slug della categoria, ma non per il single.php predefinito.
Come posso far funzionare questo? Forse il percorso predefinito di single.php è sbagliato?
Grazie!
Supporto WPBeginner
Se volessi modificare il file single.php predefinito, dovresti prima creare un tema figlio: https://www.wpbeginner.com/wp-themes/how-to-create-a-wordpress-child-theme-video/
e poi potresti modificare il tuo file single.php senza preoccuparti che le modifiche vengano rimosse quando crei il tuo single.php.
Amministratore
Jagdish
Sono uno dei tuoi lettori silenziosi, amo molto il tuo blog <3
Supporto WPBeginner
Thank you, glad you’ve been enjoying our content
Amministratore
Hil
Ciao,
Sto pensando troppo ma… se voglio che ogni post del blog abbia lo stesso aspetto, devo solo creare il Layout (uso il tema Divi), usare il primo metodo sopra (creare una nuova versione di single.php con il nome corretto) e sceglierlo ogni volta che voglio creare un post? È così semplice?
Inoltre, per aggiungere il CSS personalizzato, lo aggiungi al file php e come? Dove all'interno lo aggiungi? Come dovrebbe apparire? Questa è la parte su cui non ho ancora trovato alcun riferimento su come fare. Puoi fare un esempio basato sul fatto che ogni post del blog abbia un solo aspetto?
Grazie
Supporto WPBeginner
I post del blog dovrebbero usare single.php per impostazione predefinita e avere lo stesso aspetto in quel modo, ma puoi creare un modello di post personalizzato se volessi modificarne l'aspetto. Per il CSS personalizzato, dovresti dare un'occhiata al nostro articolo qui: https://www.wpbeginner.com/plugins/how-to-easily-add-custom-css-to-your-wordpress-site/
Amministratore
Malgorzata
Ciao, grazie per i fantastici tutorial. Funziona benissimo ma non per le nuove categorie, che non hanno un template speciale. Sfortunatamente non sta recuperando il codice dal file default single.php. Apprezzerei un aiuto su come farlo funzionare.
Christopher Krohn
Tutorial fantastico. Grazie!
STEVE
Ciao, grazie per il tutorial!
Ho una domanda. Come applicheremmo CSS personalizzato che influenzi solo le pagine dei post?
Grazie
TRAVIS
E se volessi rendere il tuo nuovo template il predefinito per tutto. In modo che ogni volta che viene creato un post, venga automaticamente selezionato come template predefinito?
Jarrod
Basta inserire il codice per il template che vuoi creare in single.php.
Jae
Scommetto che ci sono plugin che puoi usare per fare il lavoro senza il fastidio di codificare e temi child. Sarebbe stato fantastico se avessi fatto ricerche e condiviso anche questo in questo post.
Mahbub
@JAY perché non l'hai fatto da solo?
peyman
Uso il tuo metodo ma non riesco a impostare CSS personalizzato per questi post.
ad esempio in function.php quando controllo is_page_template('single-cat-news') l'istruzione non risulta vera e il mio CSS personalizzato per questo tipo di post non viene eseguito. cosa dovrei fare in questo caso?
Bikram
Vero.
Sto avendo anche io questo problema. Il template a larghezza intera funziona bene per post e pagine, ma quando si tratta di tipi di post personalizzati, i codici CSS non funzionano e tornano alle dimensioni normali della pagina senza una barra laterale.
Sto avendo difficoltà a trovare una soluzione a questo problema.
Mike
Ho bisogno di ulteriore aiuto con questo...
Seguendo le istruzioni in questa pagina (insieme alle piccole modifiche annotate nei miei commenti del 2/12/17 e 12/12/17), sono riuscito a farlo funzionare in modo affidabile.
TUTTAVIA, mi sono imbattuto nel problema in cui l'uso di questo metodo per chiamare un template personalizzato non sembra essere registrato con la chiamata delle classi body_class.
Ad esempio, se imposto un modello personalizzato su una pagina (dove sto usando il menu a discesa “Modello” di WordPress all’interno della barra laterale “Attributi pagina” nella vista di modifica), allora le classi del corpo che vengono generate includeranno il nome di quel modello.
Ad esempio:
<body class="page-template-my_custom_template page page-id-2..."Ma, usando questo metodo, le classi del body restituiscono solo:
<body class="page-template-default page page-id-2..."Qualche idea su come garantire che le classi del body riflettano un template personalizzato per un singolo post?
Mike
Ecco la risposta (almeno per il mio tema – la tua esperienza potrebbe variare).
L'aggiunta di quanto segue a [b]functions.php[/b] ha funzionato per me:
add_filter('body_class','add_category_to_single'); function add_category_to_single($classes) { if (is_single() ) { global $post; foreach((get_the_category($post->ID)) as $category) { // add category slug to the $classes array, starting with 'category-'... $classes[] = "category-$category->category_nicename"; } } // return the $classes array return $classes; }Dzungx Corn
Ho creato un file single-cat-news.php per "News". La mia categoria "News" ha due figli: "Camera" e "Smartphone". I post in "Smartphone" vengono visualizzati in single-cat-news.php (S dopo N in ordine alfabetico), ma i post in "Camera" vengono visualizzati nel single predefinito.php (C prima di N in ordine alfabetico). Voglio che i post in "Camera" vengano visualizzati in single-cat-news.php, cosa devo fare? Ho selezionato sia "News" che "Camera" per il mio post.
Sarmad Gardezi
Im viewing your Blog from last 2 years. I explored whole web to find this but i got the correct working code from here i just love your Blog keep it up
Mike
Utilizzando questo approccio per specificare un template personalizzato per un singolo post all'interno di una categoria specifica, ho scoperto che WordPress NON tornava a single.php nei casi in cui un file single-cat-WHATEVER.php non esisteva per una categoria specifica.
Ho risolto aggiungendo la seguente riga prima della fine della funzione:
elsereturn SINGLE_PATH . '/single.php';
Quindi, questo codice:
/**
* Controlla il template singolo per categoria
* Controlla per slug e ID della categoria
*/
foreach((array)get_the_category() as $cat) :
if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
endforeach;
}
È diventato questo:
/**
* Controlla il template singolo per categoria
* Controlla per slug e ID della categoria
*/
foreach((array)get_the_category() as $cat) :
if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
else
return SINGLE_PATH . '/single.php';
endforeach;
}
Sembra questo l'approccio corretto? O c'è qualcos'altro che potrei aver fatto per rompere la funzionalità predefinita?
Mike
Grazie per questa chiara guida su come fare.
Una nota: per quelli di noi che utilizzano un TEMA FIGLIO, ho scoperto che cambiare…
define(SINGLE_PATH, TEMPLATEPATH . ‘/single’);
a:
define(SINGLE_PATH, get_stylesheet_directory() . ‘/single’);
(all'interno della sezione “Definisci un percorso costante per la nostra singola cartella di template”) garantisce che la directory del tema figlio venga controllata per i singoli template invece della directory del tema padre.
Questo potrebbe anche essere il motivo per cui non funziona per alcuni degli altri commentatori sopra.
Buona fortuna a tutti!
Stephanie Lewis
Grazie mille per il tuo aiuto! Mi stavo chiedendo perché continuasse a puntarmi al tema padre invece che al tema figlio.
Ashley
Non riesco a farlo funzionare, il template non appare mai nell'editor dei post anche dopo aver svuotato la cache.
Olayinka
Grazie per questo articolo.
Voglio sapere come posso personalizzare ulteriormente il layout di questo singolo modello di post personalizzato, ad esempio posizionando un'immagine nel post prima del contenuto e nel footer.
oussama
Ciao,
Ho bisogno di cambiare l'ordine di 3 cose nella pagina del post che si trovano in fondo all'articolo:
1- un plugin di paginazione.
2- un annuncio.
3- icone di condivisione social.
Voglio metterli nel seguente ordine (verticalmente):
1- l'annuncio
2- le icone di condivisione social
3- il plugin di paginazione
Come posso fare, per favore?
Linda Holiner
Grazie per i tuoi ottimi tutorial. Ho problemi con questo. Ho aggiunto il codice al mio functions.php ma non ottengo il template del post singolo. Devo fare una chiamata alla funzione o se ne occupa WordPress? C'è un modo per eseguire il debug della funzione?
Voglio solo che i post di una particolare categoria vengano visualizzati in modo diverso quando ci si collega ad essi.
Taufiq Mahmud
Volevo creare una pagina di post personalizzata dove gli utenti registrati del mio sito potessero pubblicare senza utilizzare il default post.php di wordpress
Pierrick
Ciao! Grazie per questo tutorial, ma sono piuttosto nuovo al web design e ho iniziato a creare un intero tema WordPress. Tutto funziona bene sul mio sito web, ma sto cercando di rendere possibile l'aggiunta di pagine che utilizzino tutte un modello che ho creato (come la pagina di un prodotto in un catalogo), ma non ho idea di come farlo. Ho provato prima a farlo creando un modello di pagina in cui ho inserito dei loop che visualizzano il contenuto di un articolo o di una pagina, come il suo titolo, il suo testo e i valori di alcuni campi personalizzati. Per farlo ho usato un query_posts, ma richiede di inserire l'id del post o della pagina con "page_id=" o "p=", il che significa che il modello è per una pagina specifica, e dovrei creare un modello per ogni nuova pagina che aggiungo a questo catalogo, e specificando manualmente l'id della pagina/post al suo interno, mentre quello che volevo era creare un unico modello per tutte le pagine del catalogo...
Quindi, mentre facevo ricerche per trovare una soluzione, ho trovato il tuo articolo e ho provato a creare un post utilizzando il nuovo modello di post singolo, ma non importa quale modello seleziono nell'elenco, quando vado all'URL del post viene visualizzata la mia home page... Probabilmente sto facendo tutto in modo sbagliato e non sono nemmeno sicuro di aver capito cos'è un post singolo e se è davvero quello di cui ho bisogno... Ti sarei molto grato se potessi darmi qualche indizio su cosa dovrei fare per risolvere il mio problema, o se c'è qualche tutorial da qualche parte che potrebbe aiutarmi...
Grazie,
Pierrick.
Supporto WPBeginner
Ciao Pierrick,
Non siamo sicuri di aver compreso completamente il tuo problema. Tuttavia, se vuoi solo creare un modello da utilizzare per qualsiasi pagina, allora il modello di pagina personalizzato è l'approccio giusto. Poiché vuoi che gli utenti possano vedere qualsiasi pagina, ciò significa che non è necessario utilizzare query_posts, il tuo loop inizierà con lo standard
1-click Use in WordPress
Amministratore
alex
Ciao,
Ho una configurazione locale con WP 3.7.x e Template Post Type: post, page, product non è disponibile.
Come posso creare file php di categoria separati per ogni categoria di post???
single-{slug}.php
category-{slug}.php
tutto non sembra funzionare
Qualche consiglio?
Mark
Ho impostato questo per funzionare con le categorie, tuttavia quando seleziono un post che non ha una categoria, non riesce a recuperare il template predefinito e non visualizza il post. Sospetto che il mio tema possa essere difettoso. Come potrei codificare il single.php nella directory principale come predefinito da usare se non esiste un template di categoria?
Funziona perfettamente se copio single.php in /single/single-cat-name.php ma non voglio 40+ file duplicati.
Eric Besso
prima copia single.php nella cartella /single
quindi includi questo codice subito prima di endforeach;
else
return SINGLE_PATH . '/single.php';
Garikai Dzoma
Questo mi è stato di grande aiuto.
Lyssie
Questo è esattamente quello che stavo cercando, grazie per averlo spiegato così semplicemente! Mi rimane però una domanda: ho rimosso la mia sidebar ma ora c'è solo uno spazio vuoto dove prima c'era. Come posso allargare la sezione del contenuto principale per coprire l'intero spazio? Grazie ancora!
Supporto WPBeginner
Ciao Lyssie,
Questo perché il tuo tema ha definito la larghezza dell'area di contenuto in relazione alla sidebar. Devi usare lo strumento di ispezione per scoprire quale classe CSS utilizza la tua area di contenuto e quindi regolare aggiungendo CSS personalizzato per renderla a larghezza intera.
.page-template-full-width .content-area { width: 100%; margin: 0px; border: 0px; padding: 0px; } .page-template-full-width .site { margin:0px; }1-click Use in WordPress
Si prega di consultare la nostra guida su come creare una pagina a larghezza intera in wordpress
Amministratore
Lyssie
Grazie per la rapida risposta! Questo è stato molto utile! Ora, se vedo:
div id=”primary” class=”content-area”>
quando uso lo strumento di ispezione, qual è la classe che usa la mia area di contenuto?
Lyssie
Oops, non è venuto bene.
div id="primary" class="content-area" main id="main" class="site-main" role="main"
article id="post-4773" class="post-4773 post type-post status-draft format-standard hentry category-travel-2" div id="featured-image" /div
Supporto WPBeginner
Ciao Lyssie,
Il tuo tema utilizza la classe content-area per definire la larghezza del blocco di contenuto. Dovresti essere in grado di vederne la larghezza utilizzando lo strumento di ispezione.
Joe Yee
Questo è un ottimo articolo e dovrebbe aiutare una persona non programmatrice come me. La personalizzazione del template sarebbe qualcosa di spaventoso che potrebbe rompere completamente il tema. Consigli di creare il template personalizzato su un tema figlio o va bene farlo direttamente nel tema. Grazie mille.
Supporto WPBeginner
Ciao Joe,
Non cambierai nessuno dei file esistenti del tuo tema. Invece, creerai un nuovo file. Se qualcosa va storto, puoi semplicemente eliminare il template e il tuo sito tornerà alla normalità.
Sì, creare un tema figlio è la best practice raccomandata.
Amministratore
Danielle
Quando metto il file nel mio tema figlio, lo vedo nella casella a discesa ma in realtà non viene applicato.