رفتن به مطلب

كد براي نمايش آخرين نويسنده‌هاي سايت در صفحه اصلي


پست های پیشنهاد شده

كدي كه شما لطف كرديد، نويسنده‌ها رو بر اساس نام كاربري مرتب مي‌كنه

اما

مي‌خوام كه نويسنده‌ها بر اساس آخرين ارسال‌هاي سايت مرتب بشند.

باز هم تصوير گويا نيست؟

میخواین لیست نویسنده ها براساس تاریخ پستشون جابجا بشه یا اینکه پست هاشون براساس تاریخ لیست بشن؟

فكر كنم تركيبي از هردوتا شرط شما هست. يعني هم نويسنده‌ها بر اساس آخرين ارسال‌هاي سايت مرتب بشند هم اينكه پست‌هاي هر نويسنده بر اساس تاريخ ارسال مرتب بشه.

ویرایش شده توسط pirooz
لینک به ارسال

جالب بود :)

<?php
$exclude = '1';
$all_admins = get_users('role=administrator');
foreach ($all_admins as $admins) {
$exclude .= ','.$admins->ID;
}
$users = get_users("exclude=$exclude");

$timearr = array();

foreach ($users as $user) {
$uid = $user->ID;
$info=mysql_query("SELECT post_date FROM wp_posts WHERE post_author = $user->ID ORDER BY post_date DESC LIMIT 1");
$array_content = mysql_fetch_array( $info , MYSQL_NUM );
$arraycontent = strtotime($array_content[0]);
$arrays = array($uid=>$arraycontent);
$timearr = $timearr + $arrays;
}
arsort($timearr);

foreach($timearr as $k => $v) {
$author_id = $k;
$author_name = get_userdata($author_id)->display_name;
echo $author_name;



echo $author_name;
query_posts("showposts=3&author=$author_id&order=date");
while (have_posts()) : the_post();
?>
<ul>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br><?php the_time('Y-m-d H:i:s') ?></li>
</ul>
<?php
endwhile;
wp_reset_query();

}//foreach
?>

  • امتیاز 3
لینک به ارسال

آقا يك دنيا متشكرم.

خيلي آقايي

دكمه تشكر كمه برات.

فقط ! چي جالب بود؟

راستي! نمايش تعداد نويسنده‌ها را كجا مي‌تونم كنترل كنم؟

ویرایش شده توسط pirooz
لینک به ارسال

فقط ! چي جالب بود؟

کدی که نوشتم

راستي! نمايش تعداد نويسنده‌ها را كجا مي‌تونم كنترل كنم؟

تا چند تا بود؟

لینک به ارسال

کدی که نوشتم

خيلي حال كردم.

تا چند تا بود؟

فعلا تا ده تا.

ولي مي‌خوام بدونم اگر بخوام تغيير بدم كجا رو بايد عوض كنم.

من كد


$info=mysql_query("SELECT post_date FROM wp_posts WHERE post_author = $user->ID ORDER BY post_date DESC LIMIT 1");

را به اين:



$info=mysql_query("SELECT top 10 post_date FROM wp_posts WHERE post_author = $user->ID ORDER BY post_date DESC LIMIT 1");

تغيير دادم ول ظاهراً كار نمي‌كنه.

لینک به ارسال

خیر باید بجای foraech از for استفاده بشه.

سعی میکنم براتون تغییر بدم.

  • امتیاز 1
لینک به ارسال
  • 3 ماه بعد...

خیر باید بجای foraech از for استفاده بشه.

سعی میکنم براتون تغییر بدم.

آقا مرتضی اگر لطف کنید این لوپ را برای من درست کنید خیلی ممنون میشم.

کدی که استفاده کردم اوائل خوب کار می‌کرد. اما الان که تعداد پست‌ها و نویسنده‌ها زیاد شده

ظاهراً خیلی طول میکشه تا کوئری را اجرا کنه و منابع هاست را خیلی زیاد استفاده می‌کنه

برای همین هاست دائماً از دسترس خارج می‌شه.

یه چیزی شبیه به لوپ بی‌نهایت است.

متشکرم.

لینک به ارسال

این رو تست کنید:

<?php
$exclude = '1';
$all_admins = get_users('role=administrator');
foreach ($all_admins as $admins) {
$exclude .= ','.$admins->ID;
}
$users = get_users("exclude=$exclude");

$timearr = array();

foreach ($users as $user) {
$uid = $user->ID;
$info=mysql_query("SELECT post_date FROM wp_posts WHERE post_author = $user->ID ORDER BY post_date DESC LIMIT 1");
$array_content = mysql_fetch_array( $info , MYSQL_NUM );
$arraycontent = strtotime($array_content[0]);
$arrays = array($uid=>$arraycontent);
$timearr = $timearr + $arrays;
}
arsort($timearr);

$i = 1;
foreach($timearr as $k => $v) {
if($i<10){
$author_id = $k;
$author_name = get_userdata($author_id)->display_name;
echo $author_name;



echo $author_name;
query_posts("showposts=3&author=$author_id&order=date");
while (have_posts()) : the_post();
?>
<ul>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br><?php the_time('Y-m-d H:i:s') ?></li>
</ul>
<?php
endwhile;
wp_reset_query();
$i++;
}
}//foreach
?>

  • امتیاز 3
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...