Carregar post com botão 'Carregar Mais' no WordPress

  • Autor Autor Juanjo87
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
J

Juanjo87

Gamma
Diseñador
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Muy buenas, estoy creando un código para cargar post con un botón de cargar más, todo funciona bien pero tengo una duda.
Actualmente, al cargar la pagina me muestra los mismos post que al darle al botón cargar mas, quiero decir, si yo en el código, pongo que quiero mostrar 10 post, cuando carga la pagina, me muestra esos 10 post y si le doy a cargar mas, me cargan otros 10.
Como puedo hacer para que cuando cargue la pagina, me cargue 10 post, pero al darle a cargar mas, me cargue solo 1?

el código que estoy usando es este:

PHP:
<?php 
add_action( 'wp_ajax_grab_posts', 'grab_posts' );
add_action( 'wp_ajax_nopriv_grab_posts', 'grab_posts' );

function grab_posts(){
	$number=5;
	
	$paged = isset($_REQUEST['p']) ? $_REQUEST['p'] : 1;
	$offset = ($paged - 1) * $number;
	$args = array(
		'post_type' => array('post_type1', 'post_type2'),
		'post_status'=>'publish',
		'orderby' => 'ASC',
		'posts_per_page' => $number ,
		 'paged' => $paged,
		'offset' => $offset,
	 );
     $post_query = new WP_Query( $args );	
		
  if ( $post_query->have_posts() ) { 
		while ( $post_query->have_posts() ) { 
			$post_query->the_post();
	
		 $post_img ='';
		if ( has_post_thumbnail() ) {
		       $post_img = wp_get_attachment_url( get_post_thumbnail_id() );
           }
		   $author = get_the_author();
   ?>

		

   <?php echo $post->post_title; ?>

		      
	<?php
			}
			} else {
				echo 300; 
				}
	die;

	
}



 add_action('wp_head','loadscriptfnc');
 function loadscriptfnc(){
	 
	 echo '<script>var ajaxurl="'.admin_url('admin-ajax.php').'"; </script>';
 }
	?>
 
Última edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Por lo que veo la cantidad de posts esta controlada por la variable $number . Lo que deberías hacer es pasarle la cantidad de publicaciones vía parámetro. Cuando carga la pagina, en esa ejecucion le pasas que cargue los primero 10 (o lo que quieras) , y cuando haces clic en el botón le pasas que cargue 1.

No deberías dejar la variable declarada con un valor fijo
 
Última edição por um moderador:
El parámetro offset no es necesario...
 
pues e hecho lo que me comentabais, pero no se a solucionado, me sigue mostrando los mismos post.

El código, por lo que entiendo con lo que me habéis dicho a quedado así:

PHP:
<?php 
add_action( 'wp_ajax_grab_posts', 'grab_posts' );
add_action( 'wp_ajax_nopriv_grab_posts', 'grab_posts' );

function grab_posts(){

	
	$paged = isset($_REQUEST['p']) ? $_REQUEST['p'] : 1;
	
	$args = array(
		'post_type' => array('post_type1', 'post_type2'),
		'post_status'=>'publish',
		'orderby' => 'ASC',
		'posts_per_page' => 5 ,
		 'paged' => $paged,

	 );
     $post_query = new WP_Query( $args );	
		
  if ( $post_query->have_posts() ) { 
		while ( $post_query->have_posts() ) { 
			$post_query->the_post();
	
		 $post_img ='';
		if ( has_post_thumbnail() ) {
		       $post_img = wp_get_attachment_url( get_post_thumbnail_id() );
           }
		   $author = get_the_author();
   ?>

		<div class="owl-item" >

    <a class="no-ajax a_img_carousel" id="effect_hover" onclick="effect_hover('<?php echo $post->ID;?>','hover_effect','#effect_hover_box'); return false;" data-id="<?php the_ID(); ?>" href="<?php the_permalink(); ?>" >

        <img title="<?php echo $post->post_title; ?> " rel="tooltip"  data-title="<?php echo $post->post_title; ?>" src="<?php the_post_thumbnail_url( 'medium' ); ?>"  />

    </a>


</div>
		      
	<?php
			}
			} else {
				echo 300; 
				}
	die;

	
}


/* add ajax url for wordpress in head section*/
 add_action('wp_head','loadscriptfnc');
 function loadscriptfnc(){
	 
	 echo '<script>var ajaxurl="'.admin_url('admin-ajax.php').'"; </script>';
 }
	?>
Le e pasado la cantidad de post por pagina a parámetro y e quitado el offset, pero nada.
 
¿Has comprobado que $_REQUEST['p'] esté cargando el número de la página correctamente?
 
denzel, yo diría que si, pues cada vez que le doy a cargar mas post, me carga 5 nuevos, sin que se repitan y al llegar al ultimo, no me muestra mas.

- - - Actualizado - - -

alguien me ayuda con esto?
 
Voltar
Topo