Иногда возникает необходимость вывести случайную запись (random post), вот несколько решений.
Случайный пост
<?php query_posts('orderby=rand&showposts=1'); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div <?php post_class() ?> id="post-<?php the_ID(); ?>" style="text-align: center;"> <a href="<?php the_permalink(); ?>"> <?php if( has_post_thumbnail() ) {the_post_thumbnail(square);} else {echo '<img src="'.get_bloginfo("template_url").'/images/img-default-square.jpg" />';} ?> </a> <div class="line-cont"> <h2 class="title-post"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> </div> </div> <?php endwhile; endif; ?>
Случайная запись Ajax
Запись будет подгружаться без перезагрузки страницы.
Создаем текстовый виджет вставляем в «тело»
<div id="randomPost">... loading ...</div> <a href="#" id="another">Случайная запись</a>
Создаем новый шаблон страницы
<?php /* Template Name: Random Post */ ?> <?php query_posts('showposts=1&orderby=rand'); the_post(); ?> <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> <a href="<?php the_permalink(); ?>"> <?php if( has_post_thumbnail() ) {the_post_thumbnail(square);} else {echo '<img src="'.get_bloginfo("template_url").'/images/img-default-square.jpg" />';} ?> </a> <h3 class="title-post"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> </div>
Создаем страницу с шаблоном Random Post, адрес страницы должен быть /random/
Добавляем скрипт
$("#randomPost").load("/random/"); $("#another").click(function(){ $("#randomPost") .text("... loading ...") .load("/random/?cachebuster=" + Math.floor(Math.random()*10001)); return false; });
Случайный вывод элемента массива php
<?php $input = array( "<div class='step step-one'>«Я верю в чудо, я не буду плакать,</div><div class='step step-two'>И я не буду чудо на Facebook'е лайкать»</div>", "<div class='step step-one'>«Настя засыпает на твоем плече</div><div class='step step-two'>Если поцелуешь злую, улыбнется»</div>", "<div class='step step-one'>«Взлетали мы в Италию.</div><div class='step step-two'>Но тот ли ты, и та ли я?»</div>", "<div class='step step-one'>«Мне нужно больше, чем есть,</div><div class='step step-two'>Мне нужно больше, чем можно»</div>", "<div class='step step-one'>«Ты обнимаешь меня</div><div class='step step-two'>и весь мир становится пьяным»</div>" ); $rand_keys = rand(0, 4); echo $input[$rand_keys]; ?>[site-socialshare]