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
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