Como eu represento 'pedaços' de conteúdo no Wordpress?


10

Eu só usei o wordpress como uma plataforma de blogs auto-hospedada - até agora. Eu tenho um requisito para usá-lo para um CMS muito básico que consiste em ~ 10 páginas, a maioria das quais com conteúdo estático, atualizado periodicamente. Vou precisar fazer o upload de documentos, incorporar imagens, editar cópias usando o editor de texto - praticamente todos os recursos padrão que o wordpress oferece.

No entanto, estou tendo dificuldades em resolver o problema de editar seções específicas em uma página - em particular, apenas sabendo por onde começar. Um CMS 'normal' tradicionalmente dividia uma página em seções separadas e me permite editar qualquer uma dessas seções, editando diretamente o conteúdo ou incluindo conteúdo compartilhado nesse local. Não consigo descobrir como fazer isso usando o wordpress.

É possível 'esticar' o modelo de Página para que uma Página seja apenas uma parte do conteúdo, seja incluída por uma página / modelo específico e esteja - de alguma forma - protegida contra visualização direta (removendo-a dos menus de navegação como um começar).

Alguma dica de onde começar?

Atualizar

Para esclarecer, imagine uma postagem padrão no blog wordpress. Finja que é um conteúdo estático. Suponha que você desejasse que um editor pudesse alterar apenas o primeiro parágrafo dessa publicação no blog. Agora,

  • o conteúdo estático dessa página deve estar em uma postagem, página, modelo ou outra coisa?
  • o conteúdo editável deve ser uma página, ... ou outra coisa?

Por exemplo:

<h1>About us</h1>

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

Se eu quiser que esse parágrafo seja editável, provavelmente preciso de algo como:

<h1>About us</h1>

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

Atualização 2

OK, depois de muita pesquisa, tentativa e erro, incluí o seguinte:

  1. O Wordpress não está configurado para replicar facilmente um CMS clássico, principalmente no que se refere a ter várias partes do conteúdo em uma página.
  2. Este modelo pode ser imitado, mais ou menos, usando postagens personalizadas (veja abaixo)
  3. As páginas quase oferecem a capacidade de fazer isso, no entanto:
    • Um plug-in é necessário apenas para incluir uma página
    • As páginas não parecem ser tão flexíveis quanto as postagens - por exemplo, nenhum tipo de página personalizado

O método que eu usei, usando tipos de postagem personalizados, é o seguinte:

  1. A página é uma 'Página' com um modelo personalizado - chame-o de 'mypage.php'
  2. Esse modelo contém o seguinte:
    <div id = "header">
      <? php
        query_posts (array ('nome' => 'foo', 'post_type' => 'cabeçalho-texto'));
        get_template_part ('header-text');
      ?>
    </div>
    
    <div id = "content">
      <p> Alguma cópia estática no modelo que pode
      somente ser alterado pelo administrador do site. </p>
    
      <? php
        query_posts (array ('nome' => 'barra', 'post_type' => 'imagem'));
        get_template_part ('imagem');
      ?>
    </div>
    

Isso faz sentido para alguém lá fora? :-)


As perguntas do Wordpress são perfeitas aqui, a menos que se dediquem demais à programação.
Tim Post

Respostas:


3

Como mencionado anteriormente, convém usar tipos de postagem personalizados . No entanto, você também deve dar uma olhada nos campos personalizados , que permitirão especificar bits de dados personalizados dinâmicos que você deseja associar a cada página. Aqui está o tutorial da Smashing Magazine sobre campos personalizados, o tutorial (e o vídeo ) de Nettuts e uma lista de outros tutoriais.


Vou dar uma olhada nos tipos de postagem personalizados. O problema com os campos personalizados, se eu os entender corretamente, é que, na pior das hipóteses, são apenas texto sem formatação e, na melhor das hipóteses, não oferecem edição WYSIWYG.
Bobby Jack

Também seria sensato garantir que você esteja familiarizado com taxonomias personalizadas e como elas funcionam com tipos de postagem personalizados.
Travis Northcutt

1

Se entendi corretamente, você deseja ter layouts diferentes para páginas diferentes. Você pode conseguir isso criando um modelo personalizado para cada página do site ou uma única página personalizada, com várias condições.
Para a primeira opção, consulte a seção Codex do WordPress sobre páginas de modelos personalizados: http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates

Para a segunda, consulte este tutorial: http://www.darrenhoyt.com/2007/12/26/multiple-wordpress-page-layouts-in-one-single-template/

Em seguida, você pode mover esses "blocos" para diferentes arquivos PHP incluídos em suas páginas específicas.


Hmm ... vou dar uma olhada nos links, mas não tenho certeza se me expliquei corretamente. Essencialmente, preciso trabalhar com o conteúdo mais 'atômico' possível; algo que qualquer outro CMS que usei facilita muito. Atualizei a pergunta na tentativa de explicá-la melhor.
Bobby Jack

Se você deseja que o conteúdo seja estático (e por estática, quero dizer HTML simples não veiculado em um banco de dados - como os posts do wordpress), mas você ainda deseja modificá-lo, adicione os pedaços ao modelo. Caso contrário, coloque-o em uma página e é isso.

e se eu quiser que esses pedaços sejam editáveis ​​por WYSIWYG?
Bobby Jack


1

Dê uma olhada em um plugin como o Magic Fields. Ele usa Campos personalizados internamente, mas a interface pode ter editor de texto rico, lista suspensa etc.

Isso permite que você defina seus elementos de conteúdo, seus tipos e (para escolhas) seus valores. Então, seu tema pode exibi-lo.

Uma alternativa seria ter uma área de plugins definida e decidir qual plug-in iria entrar lá. Isso é menos flexível, pois ainda não permite duas partes de página / publicação de conteúdo específico.


1

O melhor plug-in para adicionar facilmente áreas de conteúdo personalizadas além do título e do conteúdo é provavelmente o plug-in "Mais campos".

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.