Come posso rappresentare "blocchi" di contenuti in Wordpress?


10

Ho sempre usato wordpress come piattaforma di blog self-hosted - fino ad ora. Ho l'obbligo di usarlo per un CMS di base che sarà composto da ~ 10 pagine, la maggior parte delle quali sarà contenuto statico, aggiornato periodicamente. Avrò bisogno di poter caricare documenti, incorporare immagini, modificare copie usando l'editor di testo - praticamente tutte le funzionalità standard offerte da wordpress.

Tuttavia, ho difficoltà a risolvere il problema della modifica di sezioni specifiche all'interno di una pagina - in particolare, sapendo solo da dove iniziare. Un CMS "normale" tradizionalmente spezzerebbe una pagina in sezioni separate e mi consentirebbe di modificare una di quelle sezioni, modificando direttamente il contenuto o includendo il contenuto condiviso in quel punto. Non riesco a scoprire come farlo usando wordpress.

È possibile 'allungare' il modello di Pagina in modo che una Pagina sia in realtà solo un pezzo di contenuto, venga inclusa da una pagina / modello specifico ed è - in qualche modo - protetta dalla visualizzazione diretta (rimuovendolo dai menu di navigazione essendo un inizio).

Qualche suggerimento su dove iniziare?

Aggiornare

Per chiarire, immagina un post di blog wordpress standard. Fai finta che sia un contenuto statico. Supponiamo che tu volessi che un editore fosse in grado di modificare solo il primo paragrafo di quel post sul blog. Adesso,

  • il contenuto statico su quella pagina dovrebbe essere in un post, una pagina, un modello o qualcos'altro?
  • il contenuto modificabile dovrebbe essere una Pagina, ... o qualcos'altro?

Per esempio:

<h1>About us</h1>

<p>Example.com is a company specialising in examples, demonstrations,
and canonical stuff.</p>

Se voglio che quel paragrafo sia modificabile, presumibilmente ho bisogno di qualcosa come:

<h1>About us</h1>

<p><?php insert_page('name-of-content-chunk'); ?></p>

Aggiornamento 2

OK, dopo molte ricerche, prove ed errori, ho incluso quanto segue:

  1. Wordpress non è impostato per replicare facilmente un CMS classico, in particolare per quanto riguarda la presenza di più contenuti su una pagina.
  2. Questo modello può essere imitato, più o meno, usando post personalizzati (vedi sotto)
  3. Le pagine quasi offrono la possibilità di farlo, tuttavia:
    • È richiesto un plugin solo per includere una pagina
    • Le pagine non sembrano essere flessibili come i post, ad esempio nessun tipo di pagina personalizzato

Il metodo che ho usato, usando tipi di post personalizzati, è sostanzialmente il seguente:

  1. La pagina è una 'Pagina' con un modello personalizzato - chiamala 'mypage.php'
  2. Tale modello contiene quanto segue:
    <div id = "header">
      <? Php
        query_posts (array ('name' => 'foo', 'post_type' => 'header-text'));
        get_template_part ( 'header-text');
      ?>
    </ Div>
    
    <div id = "content">
      <p> Qualche copia statica nel modello che può
      può essere modificato solo dall'amministratore del sito. </p>
    
      <? Php
        query_posts (array ('name' => 'bar', 'post_type' => 'image'));
        get_template_part ( 'immagine');
      ?>
    </ Div>
    

Ha senso per qualcuno là fuori? :-)


Qui le domande di Wordpress vanno benissimo, a meno che non approfondiscano troppo la programmazione.
Tim Post

Risposte:


3

Come indicato da tnorthcutt, potresti voler utilizzare tipi di post personalizzati . Tuttavia, dovresti anche dare un'occhiata ai campi personalizzati , che ti permetteranno di specificare bit di dati personalizzati dinamici che vuoi associare a ciascuna pagina. Ecco il tutorial di Smashing Magazine su campi personalizzati, il tutorial (e il video ) di Nettuts e un elenco di altri tutorial.


Esaminerò i tipi di post personalizzati. Il problema con i campi personalizzati, se li capisco correttamente, è che, nella peggiore delle ipotesi, sono solo testo semplice e, nella migliore delle ipotesi, non offrono la modifica WYSIWYG.
Bobby Jack,

Sarebbe anche saggio assicurarti di avere familiarità con le tassonomie personalizzate e come funzionano con i tipi di posta personalizzati.
Travis Northcutt il

1

Se ho capito bene, vuoi avere layout diversi per pagine diverse. È possibile ottenere questo risultato disponendo di un modello personalizzato per ogni pagina del sito o disponendo di una singola pagina personalizzata, con varie condizioni.
Per la prima opzione, consultare la sezione Codice WordPress relativa alle pagine dei modelli personalizzati: http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates

Per il secondo, vedere questo tutorial: http://www.darrenhoyt.com/2007/12/26/multiple-wordpress-page-layouts-in-one-single-template/

Quindi, puoi spostare questi "blocchi" in diversi file PHP che includi nelle tue pagine specifiche.


Hmm ... darò un'occhiata ai link, ma non sono del tutto sicuro di essermi spiegato bene. In sostanza, devo lavorare con il contenuto più "atomico" possibile; qualcosa che ogni altro CMS che ho usato rende molto semplice. Ho aggiornato la domanda nel tentativo di spiegarla meglio.
Bobby Jack,

Se vuoi che il contenuto sia statico (e per statico intendo HTML semplice non offerto da un DB - come i post di wordpress) ma vuoi comunque modificarlo, quindi aggiungi i blocchi al modello. Altrimenti mettilo in una pagina e il gioco è fatto.

e se voglio che quei blocchi siano modificabili con WYSIWYG?
Bobby Jack,


1

Dai un'occhiata a un plugin come Magic Fields. Utilizza i campi personalizzati internamente, ma l'interfaccia può avere un editor di testo avanzato, un elenco a discesa, ecc.

Ciò ti consente di definire i tuoi elementi di contenuto, i loro tipi e (per le scelte) i loro valori. Quindi, il tuo tema può visualizzarlo.

Un'alternativa sarebbe quella di avere un'area del plugin definita e decidere quale plugin andrebbe lì dentro. Tuttavia, è meno flessibile, poiché non consente ancora due contenuti specifici di pagine / post.


1

Il plug-in migliore per l'aggiunta indolore di aree di contenuto personalizzate oltre al solo titolo e contenuto è probabilmente il plug-in "Altri campi".

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.