Evitar mostrar post actual en post aleatorio

  • Autor Autor eic2010
  • Fecha de inicio Fecha de inicio
E

eic2010

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Quisiera que este post aleatorio NO mostrara el post actual osea que si esta en el post p=439 no debería mostrarlo intente de varias formas pero no lo he podido conseguir se que debe ser un detalle pero no se cual

aqui les dejo el codigo

PHP:
<?php
		  
  $rand_posts = get_posts('cat=-16&numberposts=4&orderby=rand');
  foreach( $rand_posts as $post ) : ?>
 
 <article2 class="article-loop" >
         
            <?php     if ( has_post_thumbnail() ) { ?> 
        <div class='post-thumb'> 
                <a href="<?php the_permalink();?>" > 
               <?php the_post_thumbnail('thumbnail'); ?> 
                </a> 
        </div> 
           <?php the_category(); ?>
          <h7><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h7>



y esto trate de hacer pero no funciono soy novato en php

PHP:
$actual=the_ID();  
  $rand_posts = get_posts('cat=-16&numberposts=4&orderby=rand&posts=-$actual');
 
Quisiera que este post aleatorio NO mostrara el post actual osea que si esta en el post p=439 no debería mostrarlo intente de varias formas pero no lo he podido conseguir se que debe ser un detalle pero no se cual

aqui les dejo el codigo

PHP:
<?php
         
  $rand_posts = get_posts('cat=-16&numberposts=4&orderby=rand');
  foreach( $rand_posts as $post ) : ?>
 
 <article2 class="article-loop" >
        
            <?php     if ( has_post_thumbnail() ) { ?>
        <div class='post-thumb'>
                <a href="<?php the_permalink();?>" >
               <?php the_post_thumbnail('thumbnail'); ?>
                </a>
        </div>
           <?php the_category(); ?>
          <h7><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h7>



y esto trate de hacer pero no funciono soy novato en php

PHP:
$actual=the_ID(); 
  $rand_posts = get_posts('cat=-16&numberposts=4&orderby=rand&posts=-$actual');
El problema en tu intento es que estás usando la función the_ID() en lugar de get_the_ID(). Además, al definir los parámetros de la función get_posts(), la parte posts=-$actual no te va a dar el resultado esperado.

Aquí te dejo un fragmento de código que puedes probar para evitar que el post actual se muestre en la lista de posts aleatorios:

PHP:
$actual = get_the_ID();
$rand_posts = get_posts(array(
    'cat' => -16,
    'numberposts' => 4,
    'orderby' => 'rand',
    'post__not_in' => array($actual)
));

foreach ($rand_posts as $post) : ?>
    <article class="article-loop">
        <?php if (has_post_thumbnail()) : ?>
            <div class='post-thumb'>
                <a href="<?php the_permalink(); ?>" >
                    <?php the_post_thumbnail('thumbnail'); ?>
                </a>
            </div>
        <?php endif; ?>
        <?php the_category(); ?>
        <h7><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h7>
    </article>
<?php endforeach; ?>

En este código, hemos utilizado get_the_ID() para obtener el ID del post actual y luego en el array de parámetros para get_posts(), hemos añadido 'post__not_in' con el ID del post actual para excluirlo de la lista de posts aleatorios. Espero que este código te ayude a lograr lo que deseas. ¡Déjame saber si tienes alguna otra duda!
 
Atrás
Arriba