Vorrei creare una pagina personalizzata in WordPress con qualche funzionalità in più, cioè con del codice php che "produce" contenuti. Come posso fare? A questa domanda penso di aver trovato una possibile soluzione, senza mettere mano violentemente al codice core di WordPress.
Il principio che sfruttiamo è quello dei template, ovvero della possibilità di creare modelli di pagine a nostro piacimento, che svolgeranno il ruolo di griglia per i contenuti che andremo ad inserire tramite l’interfaccia di amministrazione "pagine".
Come creare un modello
La sintassi di creazione di un modello non è facile: è elementare. Il passo più semplice che possiamo compiere, come in tutti i campi di sviluppo web, è quello di copiaincollare il modello base di WordPress per le pagine, ovvero la pagina "page.php" del nostro tema. Chiamiamola ad esempio "authors.php", e non ho dato un nome a caso…
Procediamo quindi con l’assegnare un nome al nostro modello, ma soprattutto a dire a WordPress che la pagina in questione è un modello. Banale:
<?php
/*
Template Name: Authors
*/
?>
A questo punto il gioco è fatto! Non vi resta che modificare l’esposizione dei contenuti inserendo a vostro piacere quello che volete che il modello stampi a monitor.
Volete ad esempio creare una pagina con l’elenco di tutti gli autori? Perfetto io ho sostituito tutto il contenuto, compresa la parte di gestione dei commenti, e ho mantenuto solo il DIV "post-content" con all’interno:
<div class="post-content">
<?php the_content('Leggi il resto della notizia »'); ?>
<h2>Tutti gli autori</h2>
<!-- lista autori -->
<ul>
<?php $args = array(
'optioncount' => true,
'exclude_admin' => true,
'show_fullname' => true,
'hide_empty' => true,
'echo' => true); ?>
<?php wpmrx_list_authors($args); ?>
</ul>
</div>
La riga:
<?php the_content('Leggi il resto della notizia »'); ?>
Pubblica il contenuto che inserirete come una normale pagina. Il resto è una chiamata alla funzione WordPress dell’elenco degli autori con i vari parametri.
[ad name=”postintra”]
Come usare il modello
Per usare il modello vi basta semplicemente creare una nuova pagina e nella colonna di destra (WordPress 2.8.4) trovate un menù a tendina "template" dove sono presenti tutti i modelli che avete creato o che il vostro tema prevede.
Vi segnalo che se non ci sono modelli personalizzati presenti, quel menù non appare.
Ora non vi resta che sbizzarrirvi a creare modelli di pagine particolari, a vostro piacere.
fonte talkincode.com
Interessante articolo…
Sto cercando di farmi un layout personalizzato per far si che compaia una scheda già pronta per un utente in particolare.
Si può fare anche per contenuti di tipo articoli (quindi dinamici) oltre che solo per pagine (statiche)?
@Peter in linea di massima temo di no, però ho trovato un plugin che sembra fare proprio quello che chiedi tu:
http://wordpress.org/extend/plugins/custom-post-template/
thx ne cerco uno simile perchè purtroppo sul server abbiamo ancora php4 e questo necessita di php5
@peter al massimo prova a scardinare quello e vedere su cosa si basa. alla fine pagine e post dovrebbero essere sul medesimo db… basta indirizzarlo giusto 🙂
http://wordpress.org/extend/plugins/simple-post-template/ dovrebbe far al caso mio
Ehm, io ho un piccolo problema, vorrei fare una modifica ad una pagina.
Perdonatemi per le domande, ma sono una neofita.
Nel pannello di admin c’è il menu a tendina “template”, con 5 scelte possibili.
Vorrei modificarne uno, eliminando un elemento e mettendo il testo full width.
Andando a vedere l’editor, però, l’unico template di pagina che trovo a parte page.php è solo uno dei 5 in elenco e non è quello che vorrei modificare.
Gli altri ci sono ma solo come loop.
Vorrei capire com’è possibile che non siano visualizzati dall’editor gli altri template di pagina ….. Come posso modificare un template di pagina che non sembra essere visibile sull’editor?
Come scritto nell’articolo all’inizio un template è qualsiasi php, dentro la directory del tuo tema selezionato, che abbia come prime righe un commento con il nome del template, come qui:
< ?php /* Template Name: Authors */ ?>
Identificato il template, ti scarichi il file via FTP, lo modifichi e lo ripubblichi.
Buondì!
sono alle prese con il mio primo sito by WP.. sto utilizzando come tema Twenty Eleven e vorrei personalizzare le singole pagine con un’immagine di testata diversa per ognuna, ma che non venga assegnata in modo casuale e in loop.
Come posso fare?
HELP ME PLEASE!
Ciao Chiara. Devi personalizzare il template dell’header facendo in modo che cambi immagine in base ad un parametro. Lo puoi fare usando il nome della pagina, l’id della pagina (e quindi gestiresti la scelta dell’immagine lato codice) oppure puoi leggere un “custom field” e da template pubblicare l’immagine indicata in quel campo (con un path completo o costruito).
http://codex.wordpress.org/Custom_Fields