Creazione del modello di pagina blog personalizzato nel modo giusto


8

Voglio creare un nuovo modello di pagina personalizzato per la presentazione di post sul blog. Mi rendo conto che quando assegni una pagina per visualizzare post tramite Impostazioni> Lettura , verrà assegnato home.php per visualizzare quel contenuto di pagina - essendo post su una pagina. Inoltre, l'opzione per assegnare un modello di pagina nella vista di modifica della pagina scompare.

In questo momento mostra un articolo predefinito per vista articolo. Voglio fornire un'altra opzione per l'amministratore per selezionare un modello diverso che potrebbe modellare i blog in un layout di griglia o muratura. Non sono sicuro di come farlo.

Potrei farlo non assegnando la pagina per visualizzare i blog nell'area Impostazioni> Lettura dell'amministratore e quindi consentendo all'utente amministratore di assegnare il modello specifico alla pagina utilizzando il menu Attributi della pagina nella modifica della pagina ma secondo https://make.wordpress.org / themes / 2014/06/28 / gestione-corretta-di-pagina-di-statica-e-blog-personale-indice-modello / , questo è il modo SBAGLIATO .

Ho provato google alla ricerca di soluzioni, ma tutto ciò che continuo a trovare sono i consigli da utilizzare per i plug-in. Qualcuno potrebbe indicarmi alcune risorse utili?


Immagino che il problema originale sia stato risolto da tempo, ma volevo solo dire che leggere il codice sorgente dei plugin mi ha insegnato molto. Se riesci a trovare un plug-in nella directory di WP.org, puoi fare clic sulla scheda degli sviluppatori per visualizzare il codice direttamente dal browser e vedere come funziona.
rtpHarry,

Risposte:


8

Non dimenticare che Wordpress è stato principalmente progettato per essere un CMS di blog, quindi quando si tratta di sviluppo di temi, gli sviluppatori spesso optano per un approccio non standard in cambio del potenziale per più funzionalità.

Gli sviluppatori di temi hanno tre opzioni quando si avvicinano a questo, uno dei quali (n. 2 sotto) che hai citato.

  1. Modifica direttamente il index.phpper modificare l'indice del blog. Questa non è una buona opzione perché index.phpdovrebbe essere un fallback nel caso in cui manchi un'altra parte del modello.

    • Pro: veloce e facile
    • Contro: soggetto a errori e contro principi orientati agli oggetti
  2. Crea un modello di pagina per l'indice del blog. Come hai detto, molti sviluppatori di temi scelgono di seguire questa strada perché è un modo rapido per darti il ​​controllo sull'indice del blog e in realtà ti dà la possibilità di giocare con diversi modelli di indice del blog (che è utile quando si sviluppa un tema versatile ).

    • Pro: versatile, consente di costruire un tema robusto
    • Contro: perdi la possibilità di chiamare la funzionalità nativa di Wordpress relativa all'indice del blog.
  3. Creare una front-page.php, home.phpe index.phpnel tema. L' front-pagesarà la home page per il tema. homepasserà automaticamente all'indice del tuo blog e indexsarà il tuo fallback per tutti i modelli.

    • Pro: pulisci e sfrutta al massimo gli oggetti e i metodi nativi di Wordpress
    • Contro: Limitato da Wordpress: non ideale per molti dei tipi di temi ricchi di opzioni che vedi oggi

Personalmente mi piace andare con il n. 2, perché la maggior parte dei miei progetti di sviluppo di Wordpress in questi giorni non sono solo blog: sono interi siti con una profonda architettura delle informazioni e una complessa interattività.



0

Andando a coprire diverse basi nella mia risposta. :)

Se stai creando il tuo tema personale e desideri modificare la presentazione predefinita di alcuni tipi di pagine (ad esempio la pagina di archivio delle categorie o una singola pagina di post sul blog), dai un'occhiata al diagramma della gerarchia dei modelli di WordPress . Mostra quali file nella directory del tema vengono utilizzati per visualizzare i tipi di post.

Avendo un file php nel tuo tema che corrisponde a un file in quella gerarchia, verrà automaticamente utilizzato da WordPress, ad esempio single.phpper visualizzare un singolo post. Se hai già un tema con quel file già lì, ovviamente puoi cambiare il file e si rifletterà sul sito.

Separatamente, se vuoi avere modelli di pagina personalizzati ma vuoi solo che un amministratore sia in grado di cambiarli (su base post-per-post), allora devi fare alcuni controlli su ruoli e capacità; questa risposta StackExchange può essere utile. (Dovresti comunque creare quei modelli di pagina personalizzati, vedi questo articolo di Smashing Magazine ).

Altrimenti, se desideri che un amministratore scelga in modo più globale i modelli di pagina / post in base a determinati criteri o scegli modelli di pagina personalizzati per l'intero sito, dovrai aggiungere un'opzione di area di amministrazione al tuo tema e alcuni personalizzati codice nel tema per visualizzare la pagina giusta in base a tale opzione. L'aggiunta di un'opzione all'area di amministrazione viene eseguita facilmente con uno dei numerosi plug-in, ma può anche essere eseguita manualmente (vedere, ad esempio, questo articolo su SitePoint ).


1
Grazie per la tua risposta. Sono a conoscenza di come creare modelli di pagina per pagine / post basati sull'erede, ma non riesco a trovare un modo per fornire opzioni di modello per "Pagina indice dei post di blog" che utilizza home.php (utilizzando la stessa terminologia del diagramma hai fornito). Viene impostato quando un utente amministratore sceglie una pagina per visualizzare post in Dashboard> Impostazioni> Lettura. Che quindi assegna la pagina home.php / index.php. Non riesco a trovare un modo per creare un modello alternativo senza NON assegnare la pagina in Dashboard> Impostazioni> Lettura.
Ryan Coolwebs,

@RyanCoolwebs Probabilmente dovresti aggiungere un'opzione admin al tuo tema che consenta di scegliere tra stili di visualizzazione per la pagina dell'indice dei post sul blog, quindi modificare home.php per leggere il valore dell'opzione e visualizzare la variazione di pagina appropriata.
iguanarama,

Sì, penso che utilizzare la funzione di personalizzazione sia probabilmente il modo migliore per farlo. Posso verificare le opzioni di personalizzazione e quindi recuperare la parte del modello appropriata.
Ryan Coolwebs il

0

Ok, vuoi dire che vuoi creare la tua pagina modello per mostrare post sul blog, giusto?

Quindi vai in questo modo crea un file php chiamato blog-template.php

All'interno di quel file metti questo codice sopra ogni cosa.

<?php 
/*
* Template Name: Blog Post
*/
?>

Quindi sotto il codice sopra indicato, inserisci tutto il codice dalla index.php/home.phppagina a questa pagina sopra, salva il file e ora crea una pagina da dashboard, diciamo come il nome di quella pagina è "Blog"ora dal lato destro chose page templateche abbiamo appena creato come Blog Postda quel menu a discesa dei modelli .

Pubblica la pagina e sei a posto per avere la tua pagina per mostrare i tuoi post.

Fammi sapere se è necessario qualcos'altro.


OK, quindi hai appena aggiornato la soluzione che OP ha chiaramente indicato come errata;) Creare il modello di pagina e usarlo come indice del blog non è l'approccio migliore, immagino.
Krzysiek Dróżdż

Di per sé non è proprio sbagliato, solo quel PO ha frainteso il motivo per cui le persone tendono a farlo in questo modo
Orun,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.