PDA

View Full Version : حرفه ای: نمایش محتوا بصورت random



mostafae
سه شنبه 09 دی 1393, 22:27 عصر
سلام. اسکلت بندی صفحه اصلی سایت من به شکل تصویری هست127046 که مشاهده میکنید.

میخوام این تصاویر در هر بار که سایت لود میشه ترتیبشون بصورت رندوم باشه. چطور امکانش هست؟

از چه تابعی و چطور باید استفاده کنم؟


<div class="all-content">
<div class="content"><a href="#"><img src="images/1.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>
<div class="content"><a href="#"><img src="images/2.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>
<div class="content"><a href="#"><img src="images/3.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>
<div class="content"><a href="#"><img src="images/4.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>
<div class="content"><a href="#"><img src="images/5.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>
<div class="content"><a href="#"><img src="images/6.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>
__________________________________________________ __________________________________

حالا اگه من برای نمایش این عکس ها از یه تابع استفاده کردم مثلا <?php the_post_thumbnail();?>

این تابع 6 تا عکس رو به من نمایش میده. اما میخوام رندوم باشه باید چیکار کنم؟؟

احسان!
سه شنبه 09 دی 1393, 23:36 عصر
سلام
میتونید از تابع rand برای تولید اعداد تصادفی استفاده کنید.فرضا برای تولید اعداد تصادفی بین ۰ و ۵ میتونید اون رو به صورت
rand(0, 5);
به کار ببرید.نتیجه تابع و محتوای صفحه رو به چند تا متغییر نسبت بدیدبرای باقی کار هم میتونید میتونید از switch و یا هر ساختار شرطی دیگه ای استفاده کنید.(بسته به این که نتیجه ی تابع رند چی باشه یکی از متغییر ها رو چاپ میکنید.)

mostafae
چهارشنبه 10 دی 1393, 09:17 صبح
سلام
میتونید از تابع rand برای تولید اعداد تصادفی استفاده کنید.فرضا برای تولید اعداد تصادفی بین ۰ و ۵ میتونید اون رو به صورت
rand(0, 5);
به کار ببرید.نتیجه تابع و محتوای صفحه رو به چند تا متغییر نسبت بدیدبرای باقی کار هم میتونید میتونید از switch و یا هر ساختار شرطی دیگه ای استفاده کنید.(بسته به این که نتیجه ی تابع رند چی باشه یکی از متغییر ها رو چاپ میکنید.)

ببینید من کلا php بلد نیستم. تصاویری هم که میخوام نمایش داده بشن به فرض همین 6 تا باشن فقط با هر بار بازدید میخوام جاشون به صورت رندوم عوض بشه ....

تابع مورد نیاز رو چطور باید توی کد html بکار ببرم؟؟؟

kabootar_y
چهارشنبه 10 دی 1393, 09:56 صبح
ببین اینطوری کار میکنه؟؟ حتما کار میکنه فقط اگه خطایی داشت بگو عجله داشتم تستش نکردم







<?php


$array[1] = '<div class="content"><a href="#"><img src="images/1.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[2] = '<div class="content"><a href="#"><img src="images/2.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[3] = '<div class="content"><a href="#"><img src="images/3.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[4] = '<div class="content"><a href="#"><img src="images/4.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[5] = '<div class="content"><a href="#"><img src="images/5.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[6] = '<div class="content"><a href="#"><img src="images/6.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$range = range(1, 6);
shuffle($range);

echo '<div class="all-content">';
echo $array[$range[1]];
echo $array[$range[2]];
echo $array[$range[3]];
echo $array[$range[4]];
echo $array[$range[5]];
echo $array[$range[6]];
echo '</div>';




?>

kabootar_y
چهارشنبه 10 دی 1393, 09:57 صبح
البته بازم میشه داینامیک ترش کرد اگه کارت با همین راه افتاد که هیچ اگر نه بگو تا بیشتر راهنماییت کنم

احسان!
چهارشنبه 10 دی 1393, 10:17 صبح
اینطوری دیگه range() لازم نیست.میشه مستقیم array رو بکار برد.بعدش هم با یه foreach کار درست میشه.
یعنی کد تبدیل میشه به این:


<?php


$array[1] = '<div class="content"><a href="#"><img src="images/1.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[2] = '<div class="content"><a href="#"><img src="images/2.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[3] = '<div class="content"><a href="#"><img src="images/3.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[4] = '<div class="content"><a href="#"><img src="images/4.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[5] = '<div class="content"><a href="#"><img src="images/5.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';


$array[6] = '<div class="content"><a href="#"><img src="images/6.jpg" /></a>
<div class="content-text"><a href="#">عنوان</a></div>
</div>';

shuffle($array);

echo '<div class="all-content">';
foreach($array as $arr){
echo $arr;
}
echo '</div>';
?>

Unique
چهارشنبه 10 دی 1393, 19:51 عصر
foreach هم نمیخواد از implode استفاده کنید.

mostafae
جمعه 12 دی 1393, 10:49 صبح
حالا اگه من برای نمایش این عکس ها از یه تابع استفاده کردم مثلا <?php the_post_thumbnail();?>

این تابع 6 تا عکس رو به من نمایش میده. اما میخوام رندوم باشه باید چیکار کنم؟؟

kabootar_y
جمعه 12 دی 1393, 21:43 عصر
حالا اگه من برای نمایش این عکس ها از یه تابع استفاده کردم مثلا <?php the_post_thumbnail();?>

این تابع 6 تا عکس رو به من نمایش میده. اما میخوام رندوم باشه باید چیکار کنم؟؟

لطفا اون تابعی که نوشتید رو بزارید ببینیم اطلاعات رو چه طوری دریافت میکنید.
بعد خروجی اش رو من براتون به صورت رندم درست میکنم

mostafae
جمعه 12 دی 1393, 22:05 عصر
لطفا اون تابعی که نوشتید رو بزارید ببینیم اطلاعات رو چه طوری دریافت میکنید.
بعد خروجی اش رو من براتون به صورت رندم درست میکنم


<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<div class="content"><a href="<?php the_permalink() ?>">
<?php the_post_thumbnail( 'thumbnail');?>
</a>
<div class="content-title"><a href="<?php the_permalink() ?>">
<?php the_title(); ?>
</a></div>
</div>
<?php endwhile; ?>
<?php else : ?>