Posts de una categoría en una página

Inicio Foros WordPress Programación Posts de una categoría en una página

Etiquetado: 

Este debate contiene 8 respuestas, tiene 4 mensajes y lo actualizó  Rmn hace 8 años, 5 meses.

  • Autor
    Publicaciones
  • #14260

    emilsita
    Participante

    <p>Hola, una consulta.. estoy tratando de que los posts correspondientes a una categoría se vean en una página aparte.<br />
    Seguí este muy buen tutorial.: https://ayudawp.com/foro/topic/queries-variables-y-codigos-utiles-para-wordpress</p&gt;
    <p>Genero el archivo php correspondiente, pero al crear la página, no encuentro en las opciones de adminitración, la opción para adjuntar la plantilla de página a la página nueva.</p>
    <p>Alguien sabe donde está esta opción en wp 2.8? se supone que tiene que estar en Atributos, pero no se ve….o necesitaré bajarme algún plugin?</p>
    <p>gracias!!
    </p>

  • #31864

    23r9i0
    Participante

    Hola
    Mira comprueba lo siguientes pasos:
    -Tienes un archivo php, que es la plantilla de tu pagina con las modificaciones siguientes:
    Al principio del todo tienes que tener lo siguiente [code]<?php
    /*
    Template Name: Aqui va el nombre que quieras!!
    */
    ?>[/code]
    Este codigo va antes que cualquier codigo y sirve para que WP sepa que tiene una plantilla para determinada cosa que la seleccionas en atributos cuando creas una pagina. Es el primer apartado!
    -En el mismo archivo php tienes que tener el query_post para que solo muestre la categoria que quieres mostrar que es lo que quieres hacer tu. Lo puedes hacer poniendo la ID o el nombre, para ponerlo con el id solo tienes que dirijirte a la seccion de categorias en el panel de administracion y pasar el raton por encima de la categoria y veras un link en la parte de abajo del navegador con un enlace que acaba diciendo cat_id=X donde X es la id que tu deseas mostrar.
    Una vez que sabes el id solo tienes que colocar el siguiente codigo[code]<?php query_posts(“cat=X”); ?>
    [/code] en el archivo php, donde X es la ID de la categoria. Ah el codigo pegalo antes de [code]<?php if (have_posts()) : ?>[/code]
    Si lo que quieres es usar el nombre de la categoria solo cambia el query_post por el siguiente:
    [code]<?php query_posts(‘category_name=nombredelacat’) ?>[/code]
    Y para acabar decirte que al archivo php le pongas un nombre identificativo para que sepas en el editor del wp cual archivo estas editando por ejemplo pagcat.php o el que quieras.
    Con todo esto echo deberias ir a la seccion donde crear paginas y en atributos seleccionas el nombre de la plantilla, pones nombre a la pagina y guardas. En un principio deberias tener tu pagina funcionando.
    Saludos!!

  • #41529

    Rmn
    Participante

  • #41532

    Rmn
    Participante

    Yo tengo algo así:


    Pero me sale unexpected $end in line 9 (son 8 líneas). Qué pasa?

  • #41539

    23r9i0
    Participante

    Hola los espacios de <? … y … ?>los tienes asi en el archivo?

  • #41544

    imported_fliberty
    Participante

    Hay algo más sencillo que utilizar plantillas personalizadas y es utilizar las categorías como páginas; es decir agregas el enlace que redireccione al usuario a la categoría en mención, he realizado una explicación de lo mismo a alguien, puedes ver el post aqui.
    https://ayudawp.com/foro/topic/entradas-en-paginas

    Por cierto si deseas utilizar una plantilla personalizada, puedes simplemente realizar una copia del archivo index, archive o category de tu theme (cualquiera de ellos), y agregarle en la parte superior el nombre de la plantilla:

    Justo antes de

    Y cuando agregues una página selecciona la plantilla que acabas de crear; debes tener en cuenta algo (lo digo por experiencia)

    – La paginación no será igual, muchas veces ocurre errores cuando se realiza esto, es decir crear la plantilla que te muestre el contenido de cierta categoría y luego hacer un filtro en el loop del index para que se evite mostrar esta categoría; el error de paginación se soluciona utilizando la opción paged en el query.

    – El contenido no se mostrará igual que en el index, por más que utilices the_content() no mostrarás el contenido igual que las entradas del index, puedes utilizar the_excerpt o alguna otra función; en mi caso tengo una función que me permite mostrar imágenes y ciertas etiquetas en el contenido, inclusive limitar las palabras.

    Cualquiera sea la opción que tomes, espero que te salga bien.

  • #41550

    Rmn
    Participante

    Hola los espacios de <? … y … ?>los tienes asi en el archivo?

    No, salen así acá, cuando uno les pone el tag de code.
    Vale decir, todo lo que había hecho ANTES de leer estas últimas respuestas, estaba mal y no me llevaría a ningún lado.
    Acá, les muestro como es mi index.php, para que vean bien cuál es mi (nueva) inquietud: El loop se encuentra en _posts.php, entonces… Debo crear otra copia de _posts.php con la query? O puedo poner la query Antes del llamado simplemente? Debajo del index les dejo también el _posts.
    [b]EL INDEX.PHP:[/b]


    ahora, [b]ESTE ES EL _POSTS.PHP:[/b]

    Desde ya, muchas gracias muchachos.

  • #41570

    imported_fliberty
    Participante

    Sacale una copia al index.php, archive.php ó category.php, a cualquiera de ellas, lo importante es que contenga el loop o una llamada a él; yo preferiría que sea el index.php, realiza una copia y renombrale a por ejemplo: prueba.php

    Abres el archivo (copia del index.php) y en la parte donde está este código:

    Lo reemplazas por todo el contenido del archivo “_post.php”; y justo antes de las líneas que acabas de agregar, antes del div “content” colocas el query que filtra la categoría que quieras mostrar, y al inicio de todo colocas el nombre de la plantilla.

    Pero porque no utilizo el _post.php, pues porque el post php, no contiene las llamadas al header, sidebar y footer respectivamente, mientras que el index.php si los tiene.

    En sí tendría que quedarte algo como esto:

    Sería algo parecido a eso.

  • #41608

    Rmn
    Participante

    Muchísimas Gracias! Ya mismo lo voy a probar, pero leyendo el código deduzco (sin ser muy hábil en php, realmente) que va a funcionar perfecto, de nuevo, me salvan el día muchachos, gracias Fliberty

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest