Ai văzut vreodată pe diverse bloguri pagini sau butoane de tipul „Articole random”, „Articol aleatoriu” sau „Surprinde-mă”, în care vizitatorilor li se afișează de fiecare dată o postare aleasă la întâmplare?
Dacă da și ți se pare o idee interesantă pentru a crește timpul petrecut pe site și a readuce în atenție conținutul mai vechi din arhivă, poți crea foarte ușor o astfel de pagină pentru propriul tău blog WordPress.
Pentru început, dacă nu ai mai creat până acum un fișier de șablon dedicat, este util să consulți acest articol cu privire la crearea unui template nou în tema ta.
Crearea fișierului de șablon PHP
Creează în folderul temei tale active un fișier nou denumit template-random.php și adaugă următorul cod sursă:
<?php
/*
* Template Name: Articol Aleatoriu
*/
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php
// Interogăm baza de date pentru a extrage un singur articol aleatoriu
query_posts( array(
'orderby' => 'rand',
'showposts' => 1
) );
if ( have_posts() ) :
while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h1 class="entry-title">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</h1>
<div class="entry-content">
<?php the_content(); ?>
</div>
</article>
<?php
endwhile;
endif;
// Resetăm interogarea pentru a nu afecta alte componente ale paginii
wp_reset_query();
?>
</main>
</div>
<?php get_footer(); ?>
Cum configurezi pagina în panoul WordPress
- Navighează în panoul de administrare la Pagini → Adaugă pagină nouă.
- Introdu un titlu sugestiv, de exemplu „Articol aleatoriu” sau „Surprinde-mă”.
- În panoul din dreapta, la secțiunea Atribute pagină, selectează din lista derulantă șablonul Articol Aleatoriu.
- Publică pagina și adaugă un link către ea în meniul principal sau în bara laterală a blogului.
Explicații tehnice și bune practici
- Parametrul
orderby => 'rand': solicită motorului MySQL să returneze o înregistrare aleatorie la fiecare reîncărcare a paginii. - Parametrul
showposts => 1: restricționează rezultatul la un singur articol (în versiunile moderne de WordPress se recomandă echivalentulposts_per_page => 1). - Funcția
wp_reset_query(): este esențială pentru a restabili interogarea principală a WordPress, prevenind conflictele cu alte module sau funcții din subsolul paginii.
De fiecare dată când un cititor va accesa sau va reîncărca această pagină, WordPress va afișa automat un alt articol complet din arhiva blogului tău.