Crear plantilla en WP que muestre entradas ordenadas por fecha de modificación

  • Autor Autor Euritos
  • Fecha de inicio Fecha de inicio
Euritos

Euritos

Iota
SEO
Verificación en dos pasos activada
Buenas,

Me gustaría crear una plantilla en WP dentro de mi theme (una página donde se muestren entradas) pero en vez de ordenarse por fecha de publicación que fuera por la fecha de modificación de la entrada.

Poder acceder a todos los post de 2 formas:

miweb.com/posts <- muestra todos los post ordenados por fecha de publicación (esta ya viene de serie en WP)
miweb.com/posts-actualizados <- muestra todos los post ordenados por fecha de modificación

Alguien tiene idea de como se podría hacer? :encouragement:
 
Última edición:
Hola [MENTION=42188]Euritos[/MENTION] ,

Creo haberte entendido. Si quieres solamente que se ordenen específicamente los post de una categoría, te voy a dejar un código para que solamente coloques el nombre de la categoría que quieres ordenar y se muestren por modificación y no por publicación. Este código debes colocarlo en el archivo functions.php de tu tema/plantilla.


PHP:
function my_custom_ordering( $query ) {
   if($query->is_main_query() AND !is_admin() ) {
     if ( $query->is_category('COLOCATUCATEGORIA') ){
	  $query->set( 'orderby', 'modified' );
	  }
     }
   }

add_action( 'pre_get_posts', 'my_custom_ordering' );

Saludos, avisame como te fué.
 
Hola [MENTION=42188]Euritos[/MENTION] ,

Creo haberte entendido. Si quieres solamente que se ordenen específicamente los post de una categoría, te voy a dejar un código para que solamente coloques el nombre de la categoría que quieres ordenar y se muestren por modificación y no por publicación. Este código debes colocarlo en el archivo functions.php de tu tema/plantilla.


PHP:
function my_custom_ordering( $query ) {
   if($query->is_main_query() AND !is_admin() ) {
     if ( $query->is_category('COLOCATUCATEGORIA') ){
	  $query->set( 'orderby', 'modified' );
	  }
     }
   }

add_action( 'pre_get_posts', 'my_custom_ordering' );

Saludos, avisame como te fué.


Muchas gracias diseñopro!

Para una categoría me funciona correctamente, sabrías como hacer lo mismo con todos los post?

Me explico:
Poder acceder a todos los post de 2 formas:

miweb.com/posts <- muestra todos los post ordenados por fecha de publicación (esta ya viene de serie en WP)
miweb.com/posts-actualizados <- muestra todos los post ordenados por fecha de modificación


No consigo encontrar la forma, no se si habría que crear otro archive.php o se podría hacer con el que viene
 
Tambien desde el template:

code:
PHP:
<?php
$posts = query_posts( $query_string . '&orderby=modified&order=desc' );
if ( $posts ) :
	foreach ($posts as $post) :
		setup_postdata($post);
		the_content();
	endforeach;
endif;
?>
 
Tambien desde el template:

code:
PHP:
<?php
$posts = query_posts( $query_string . '&orderby=modified&order=desc' );
if ( $posts ) :
	foreach ($posts as $post) :
		setup_postdata($post);
		the_content();
	endforeach;
endif;
?>

Gracias amigo, entiendo que eso se pondría en archive.php sin embargo eso cambiaría el orden de los artículos al acceder a ellos de cualquier forma.

Lo que me gustaría es poder verlos normalmente (por fecha de publicación) y también ordenados por fecha de modificación. De las 2 formas, no se si es posible...


Algo así:

miweb.com/articulos (la forma normal de WP)
miweb.com/articulos-actualizados (ver por orden de fecha de modificación)
 
puedes usar un plugin de edicion de paginas, y crearlas como quieras independientemente
 
Muchas gracias diseñopro!

Para una categoría me funciona correctamente, sabrías como hacer lo mismo con todos los post?

Me explico:
Poder acceder a todos los post de 2 formas:

miweb.com/posts <- muestra todos los post ordenados por fecha de publicación (esta ya viene de serie en WP)
miweb.com/posts-actualizados <- muestra todos los post ordenados por fecha de modificación


No consigo encontrar la forma, no se si habría que crear otro archive.php o se podría hacer con el que viene

Que bueno que te haya servido! Y pues, ya entiendo perfectamente todavía a lo que te refieres. Pudiste lograrlo? Yo por lo personal siempre tomo la vía mucho mas sencilla y eficaz que me llega a la mente, sin complicarme tanto. La idea es resolver el problema. Para este caso yo crearía una plantilla personalizada y crear una página que muestre exactamente lo que quieres.

Coloca acá tu código de archive.php y te ayudare en lo que requieres. Esto es en el caso que no has logrado realizarlo.

Saludos!
 
Última edición:
Que bueno que te haya servido! Y pues, ya entiendo perfectamente todavía a lo que te refieres. Pudiste lograrlo? Yo por lo personal siempre tomo la vía mucho mas sencilla y eficaz que me llega a la mente, sin complicarme tanto. La idea es resolver el problema. Para este caso yo crearía una plantilla personalizada y crear una página que muestre exactamente lo que quieres.

Coloca acá tu código de archive.php y te ayudare en lo que requieres. Esto es en el caso que no has logrado realizarlo.

Saludos!


Hola de nuevo diseñopro! sigo batallando con esto jaja

Te dejo el archive.php y muchas gracias por la ayuda :encouragement:




Insertar CODE, HTML o PHP:
<?php get_header(); ?>
<div id="wrapper" class="hfeed">
	<div id="main">
		<div id="container">
        	<div id="content" role="main">
				<strong>Listado de Peliculas</strong><div align="right" style="margin-top:-25px;"><a href="<?php echo get_settings('home'); ?>/archivos/estrenos/"><img src="<?php bloginfo( 'template_url' ); ?>/css/images/estrenos.png" title="Ver Estrenos" /></a>&nbsp;</div>
                <?php if (have_posts()) : ?>
            	<?php while (have_posts()) : the_post(); ?>
                <div class="poster post-<?php the_ID(); ?>">
                	<a class="aimg" href="<?php the_permalink() ?>" rel="tooltip" title='<h2><?php the_title(); ?></h2><p><?php wp_limit_post(170,'[...]',true); ?></p><p><strong>Género: </strong><?php the_category(', '); ?></p><p><strong>Año: </strong><?php $values = get_post_custom_values("Year"); echo $values[0]; ?></p>'>
                    <?php the_post_thumbnail(array(128,171)); ?></a>
				</div>
                <?php endwhile; ?>	
                				<hr width=100%>
				<?php wp_pagenavi(); ?>
                <?php else : ?>

                <h3>No se ha encontrado</h3>
                <p>Lo sentimos, pero que esta buscando algo que no esta aqui. </p>
        
                <?php endif; ?>
			</div>
		</div>
        <?php get_sidebar(); ?> 
	</div>
</div>
<?php get_footer(); ?>
 
El archivo archive.php es general, lo que te conviene es crear una página, un archivo page-{id}.php de esa página y un añadir una query personalizada en ese archivo, fin.
 
[MENTION=42188]Euritos[/MENTION] Man, prueba esto y dime si te funciona!
Creas una pagina y le pones esta plantilla personalizada!

PHP:
<?php /* Template Name: Posts Actualizados */ ?>
<?php get_header(); ?>

<div id="wrapper" class="hfeed">
	<div id="main">
		<div id="container">
        	<div id="content" role="main">
				<strong>Listado de Peliculas</strong><div align="right" style="margin-top:-25px;"><a href="<?php echo get_settings('home'); ?>/archivos/estrenos/"><img src="<?php bloginfo( 'template_url' ); ?>/css/images/estrenos.png" title="Ver Estrenos" /></a>&nbsp;</div>
				
            	<?php $actualizados = new WP_Query('orderby=modified&order=desc'); ?>
				<?php if($actualizados->have_posts()): while($actualizados->have_posts()): $actualizados->the_post(); ?>
				
                <div class="poster post-<?php the_ID(); ?>">
                	<a class="aimg" href="<?php the_permalink(); ?>" rel="tooltip" title='<h2><?php the_title(); ?></h2><p><?php wp_limit_post(170, '[...]',true); ?></p><p><strong>Género: </strong><?php the_category(', '); ?></p><p><strong>Año: </strong><?php $values = get_post_custom_values("Year"); echo $values[0]; ?></p>'>
                    <?php the_post_thumbnail(array(128,171)); ?></a>
				</div>
				
                <?php endwhile; ?>	
                <hr width="100%">
				<?php wp_pagenavi(); ?>
				
                <?php else: ?>

                <h3>No se ha encontrado</h3>
                <p>Lo sentimos, pero que esta buscando algo que no esta aqui. </p>
        
                <?php endif; ?>
				
			</div>
		</div>
		
        <?php get_sidebar(); ?> 
	</div>
</div>

<?php get_footer(); ?>
 
Atrás
Arriba