Mostrar publicaciones de un año en una página web

  • Autor Autor Kakkonen
  • Fecha de inicio Fecha de inicio
Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

Kakkonen

Kakkonen

Ómicron
SEO
Verificación en dos pasos activada
Verificado por Whatsapp
hola, estoy buscando la manera de insertar algun codigo que me arroje todas las entradas de tal año y a modo de viñeta, me urge y no me sale y eso de hacerlo manual como que me cansa cuando son miles
 
Probaste usando wp_query, hay un monton de parametros que le puedes pasar, por ejemplo, lo que buscas:

Insertar CODE, HTML o PHP:
<?php

// The Query
$the_query = new WP_Query('year=2012&posts_per_page=30&order=DESC');

// The Loop
if ( $the_query->have_posts() ) {
	echo '<ul>';
	while ( $the_query->have_posts() ) {
		$the_query->the_post();
		?>
		  <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
		<?php 
	}
	echo '</ul>';
} else {
	// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>

No se si eso es lo que buscas, ya que dices que quieres ponerlo en una pagina. Si es solo en una pagina especifica, puedes hacer una plantilla de pagina " page template ". O si vas a hacer esto en varias paginas, podrías intentar meter eso en una función, y luego la función en un shortcode.

Es lo que se me ocurre.

Saludos
 
[MENTION=2218]Angel Ortega[/MENTION] si por ejemplo creo la pagina llamada "publicaciones-2013" y ahi aparezca el titulo y que se enlisten todos los articulos de ese año, despues crear otra para el 2014 y 2015 y asi, pero no tengo idea.

Eso se hacen en fucntion? como creo una page que respete el look and feel del sitio?
 
[MENTION=2789]Kakkonen[/MENTION] podrías hacerlo usando plantillas de pagina que es la manera mas simple sin liarte con funciones extra y demás, aquí mas info.

Para mantener la estética del sitio, puedes tomar de base el page.php de tu theme, y guardarla por ejemplo como publicaciones-2013.php, una vez tienes esta nueva pagina, en la primer linea que es:

Insertar CODE, HTML o PHP:
<?php get_header(); ?>

La modificas así:
Insertar CODE, HTML o PHP:
<?php
/*
Template Name: Publicaciones 2013
*/
 get_header(); ?>

Y puedes:

-Sustituir <?php the_content(); ?>, por el wp_query que te deje arriba, o bien conservar dicha linea si es que quieres añadir algún otro texto desde el panel de escriturade wp, y debajo poner el wp_query.

Ya por ultimo, vas y creas una pagina nueva, y seleccionas el template correspondiente. Así sucesivamente...
 
[MENTION=2218]Angel Ortega[/MENTION] a ver si entendi, clono el page.php del theme, conservo todo el codigo hasta cuando llega a los h1 y demas parametros para reemplazarlos, de esta manera conservo las propiedades del theme y su responsive.

Ahora mi idea es cuando vea que hace la lista puedo copiar el codigo fuente de la lista y hacer una pagina nueva y pego el codigo para ahorrar consumo ya que por decirte en el 2013 tengo casi mil entradas

- - - Actualizado - - -

se me olvido decirte, en donde creo una pagina? porque entro a paginas > crear > y solo me aparece plantilla predestinada y home que es la pagina que cree para montar el theme

- - - Actualizado - - -

este es mi codigo de mi theme (page.php)

Insertar CODE, HTML o PHP:
<?php get_header(); ?>	
	<?php 
	$layout_style = ft_get_option('layout_style'); 
	if( get_post_meta( $post->ID, THEME_FX . 'page_layout', true) != '' )
	$layout_style = get_post_meta( $post->ID, THEME_FX . 'page_layout', true);
	?>
    
    <div id="<?php echo $layout_style; ?>" class="clearfix">
        <div id="primary" class="three-fourth clearfix">
            <section id="content" class="clearfix" role="main">
			<?php if ( have_posts() ) : ?>	
                <?php while ( have_posts() ) : the_post(); ?>
                <article <?php post_class('single-entry clearfix'); ?> id="post-<?php echo $post->ID; ?>">
                    
                    <header class="entry-header clearfix">
                        <h1 class="entry-title"><?php the_title(); ?></h1>
                    </header>
                    
                    <section class="entry-content clearfix">
                        <?php the_content(); ?>
						<?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', THEME_FX ), 'after' => '</div>' ) ); ?>
                    </section>
                    
                    <footer class="entry-footer clearfix">
                       
                    </footer>
                    
                </article>
                <?php endwhile; ?>
                
            <?php endif; ?>
            
            </section><!-- #content -->
            
            <?php if( get_post_meta( $post->ID, THEME_FX . 'page_layout', true) != 'fullwidth' ) get_sidebar('left'); ?>
        </div>
        
        <div id="secondary" class="one-fourth clearfix">
			<?php if( get_post_meta( $post->ID, THEME_FX . 'page_layout', true) != 'fullwidth' ) get_sidebar('right'); ?>
        </div>
    </div>
	
<?php get_footer(); ?>
 
[MENTION=2789]Kakkonen[/MENTION] una vez que clonas el page.php y agregas lo que te dije:

Insertar CODE, HTML o PHP:
/*
Template Name: Publicaciones 2013
*/

Lo guardas y lo subes, después vas a " Paginas > Crear nueva , y ya estando en el panel de escritura, en los paneles de la derecha, hay un apartado que dice template. Ahí aparecerán los templates que armes. ej: Publicaciones 2013.

- Sí, para ahorrar consumo, puedes correr el template, luego ver el código fuente copiar la lista de las entradas, y reemplazarlas en donde debería ir el query.

Saludos
 
[MENTION=2218]Angel Ortega[/MENTION] ya lo hice pero no me mostro la lista sino todo junto pero solo 6, como puedo ponerle ilimitado y quede en lista?
 
[MENTION=70900]FerMolina[/MENTION] muchas gracias, ahora si se muestra todo, sabes como dejarlo con lista porque me queda todo junto

ejemplo:

Entradas 2013

Mi nombre es la entradaMi nombre es la otra entradaSu nombre y asi al infinito
 
Le falta la etiqueta LI, es decir, te devuelve todos los a href.
Prueba así:

Insertar CODE, HTML o PHP:
<?php
    $args = array (
        'posts_per_page'         => '-1',
        'year'                   => '2013',
        'order'             => DESC
    );

$query = new WP_Query($args);
if ( $query->have_posts() ) {
    echo '<ul>';
    while ( $query->have_posts() ) { $query->the_post(); ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
   <?php }
        echo '</ul>';
    } else {
        echo 'No encontramos posts =/';
}
    wp_reset_postdata();
?>

Lo único que cambia es:
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
 
ya quedo, le puse esto

Insertar CODE, HTML o PHP:
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

- - - Actualizado - - -

Muchas gracias [MENTION=70900]FerMolina[/MENTION] y [MENTION=2218]Angel Ortega[/MENTION]
 
Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

Atrás
Arriba