Cómo representar 'fragmentos' de contenido en WordPress

3 ago 2010, 14:04:42
Vistas: 1.03K
Votos: 10

Solo he usado WordPress como una plataforma de blogs autoalojada, hasta ahora. Tengo el requisito de usarlo para un CMS muy básico que constará de ~10 páginas, la mayoría con contenido estático, actualizado periódicamente. Necesitaré la capacidad de subir documentos, insertar imágenes, editar texto usando el editor - básicamente todas las funciones estándar que ofrece WordPress.

Sin embargo, tengo dificultades con el tema de editar secciones específicas dentro de una página, especialmente en saber por dónde empezar. Un CMS 'normal' tradicionalmente divide una página en secciones separadas y me permite editar cualquiera de esas secciones, ya sea editando directamente el contenido o incluyendo contenido compartido en ese lugar. No encuentro cómo hacer esto en WordPress.

¿Es posible 'estirar' el modelo de Página para que una Página sea solo un fragmento de contenido, que sea incluido por una página/plantilla específica, y que - de alguna manera - esté protegida de ser vista directamente (quitarla de los menús de navegación sería un comienzo)?

¿Alguna indicación sobre por dónde empezar?

Actualización

Para aclarar, imagina un post de blog estándar en WordPress. Supón que es contenido estático. Supón que quisieras que un editor pueda cambiar solo el primer párrafo de ese post. Entonces,

  • ¿el contenido estático de esa página debería estar en un Post, Página, Plantilla, u otra cosa?
  • ¿el contenido editable debería ser una Página, ... u otra cosa?

Por ejemplo:

<h1>Sobre nosotros</h1>

<p>Example.com es una empresa especializada en ejemplos, demostraciones,
y cosas canónicas.</p>

Si quiero que ese párrafo sea editable, presumiblemente necesito algo como:

<h1>Sobre nosotros</h1>

<p><?php insert_page('nombre-del-fragmento'); ?></p>

Actualización 2

OK, después de mucha investigación, prueba y error, he concluido lo siguiente:

  1. WordPress no está configurado para facilitar la réplica de un CMS clásico, especialmente en cuanto a tener varias piezas de contenido en una página.
  2. Este modelo puede imitarse, más o menos, usando posts personalizados (ver abajo)
  3. Las Páginas casi ofrecen esta capacidad, sin embargo:
    • Se necesita un plugin solo para incluir una página
    • Las páginas no parecen ser tan flexibles como los posts - ej. no hay tipos de página personalizados

El método que he usado, usando tipos de post personalizados, es básicamente así:

  1. La página es una 'Página' con una plantilla personalizada - llamémosla 'mipagina.php'
  2. Esa plantilla contiene lo siguiente:
    <div id="header">
      <?php
        query_posts(array('name' => 'foo', 'post_type' => 'header-text'));
        get_template_part('header-text');
      ?>
    </div>
    
    <div id="content">
      <p>Algo de texto estático en la plantilla que solo
      puede ser cambiado por el administrador del sitio.</p>
    
      <?php
        query_posts(array('name' => 'bar', 'post_type' => 'image'));
        get_template_part('image');
      ?>
    </div>
    

¿Tiene sentido esto para alguien ahí fuera? :-)

1
Comentarios

Las preguntas sobre Wordpress son perfectamente adecuadas aquí, a menos que profundicen demasiado en programación.

Tim Post Tim Post
3 ago 2010 14:57:58
Todas las respuestas a la pregunta 5
2

Como mencionó tnorthcutt, quizá quieras usar tipos de contenido personalizados. Sin embargo, también deberías echar un vistazo a los campos personalizados, que te permitirán especificar fragmentos de datos personalizados dinámicos que quieres asociar con cada página. Aquí está el tutorial de Smashing Magazine sobre campos personalizados, el tutorial de Nettuts (y su video), y una lista de otros tutoriales.

4 ago 2010 12:40:33
Comentarios

Voy a echar un vistazo a los tipos de entradas personalizados. El problema con los campos personalizados, si los entiendo correctamente, es que, en el peor de los casos, son solo texto plano, y en el mejor, no ofrecen edición WYSIWYG.

Bobby Jack Bobby Jack
4 ago 2010 13:44:03

También sería prudente asegurarte de que estás familiarizado con las taxonomías personalizadas y cómo funcionan con los tipos de entradas personalizados.

Travis Northcutt Travis Northcutt
4 ago 2010 19:21:23
3

Si entendí correctamente, deseas tener diferentes diseños para distintas páginas. Puedes lograrlo ya sea teniendo una plantilla personalizada para cada página del sitio o mediante una única página personalizada con varias condiciones.
Para la primera opción, consulta la sección del Codex de WordPress sobre plantillas de páginas personalizadas: http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates

Para la segunda opción, revisa este tutorial: http://www.darrenhoyt.com/2007/12/26/multiple-wordpress-page-layouts-in-one-single-template/

Luego, puedes mover estos "fragmentos" a diferentes archivos PHP que incluyas en tus páginas específicas.

3 ago 2010 15:33:24
Comentarios

Mmm... voy a revisar los enlaces, pero no estoy completamente seguro de haberme explicado correctamente. Básicamente, necesito trabajar con la pieza de contenido más 'atómica' posible; algo que todos los otros CMS que he usado hacen muy fácil. He actualizado la pregunta para intentar explicarlo mejor.

Bobby Jack Bobby Jack
3 ago 2010 16:03:33

Si quieres que el contenido sea estático (y por estático me refiero a HTML plano que no se sirve desde una base de datos - como los posts de WordPress) pero aún así quieres modificarlo, entonces añade los fragmentos a la plantilla. De lo contrario, ponlo en una página y listo.

User User
3 ago 2010 17:02:03

¿Y si quiero que esos fragmentos sean editables con WYSIWYG?

Bobby Jack Bobby Jack
4 ago 2010 17:12:02
0

Creo que tu mejor opción es utilizar tipos de contenido personalizados.

4 ago 2010 06:52:35
0

Echa un vistazo a un plugin como Magic Fields. Utiliza Campos Personalizados internamente, pero la interfaz puede tener un editor de texto enriquecido, listas desplegables, etc.

Esto te permite definir los elementos de tu contenido, sus tipos y (para opciones) sus valores. Luego, tu tema puede mostrarlo.

Una alternativa sería tener un área de plugin definida y decidir qué plugin iría allí. Sin embargo, eso es menos flexible, ya que todavía no permite dos piezas de contenido específicas por página/entrada.

8 ago 2010 06:45:03
0

El mejor plugin para agregar sin problemas áreas de contenido personalizado más allá del título y el contenido principal es probablemente el plugin "More Fields".

11 oct 2011 18:18:56