رفتن به مطلب

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


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

با سلام

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

در ضمن اين كد تحت تأثير پيجينگ صفحه قرار نگيرد. يعني اگر به صفحه دوم رفتيم، مجدداً همان نويسنده‌اي را اول نمايش دهد كه در صفحه اول نمايش مي‌داد.

تا اونجايي كه از اين طرف و اون طرف خوندم، يك همچين چيزي قرار دادم:


<?php
$count_post = 0;
if (have_posts()) : while ($count_post < count(get_users('role=author'))) : the_post(); $count_post++ ;
?>
<ul>
<?php $recentposts = get_posts('numberposts=3&author='.get_the_author_ID() );
foreach ($recentposts as $post) : setup_postdata($post); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<?php
endwhile;
wp_reset_query();
endif;
?>

اما اين كد چند تا اشكال داره:

1- نام نويسنده را نمي‌دونم چطور بايد توي اين ليست بيارم.

2- تحت تأثير پيجينگ صفحه قرار مي‌گيره و وقتي به صفحه دوم مي‌ريم، مقالات مربوط به نويسنده‌هاي صفحه دوم را فهرست مي‌كنه

3- با وجود اينكه كد ريست كوئري را در آخرش آوردم، اما پست‌ها را در صفحه اول نمايش نمي‌دهد.

با تشكر

لینک به ارسال

1 - نمایش نام با the_author

http://codex.wordpress.org/Function_Reference/the_author

2- تابع wp_reset_postdata و wp_reset_query را قبل از کوئری قرار دهید

3- دو تابع قبل را بعد از حلقه قرار دهید

لینک به ارسال

ميشه خواهش كنم كد را به صورت صحيح بازنويسي كنيد؟ خيلي متوجه نشدم.

با اين كدي كه نوشتم، كاربر ادمين را هم مياره و يكي از دسته‌ها هم بدون نام هست و يكي از نويسندگان هم دو بار تكرار ميشه. اين مشكل را بعد از اضافه كردن كد the_author متوجه شدم.

user1

  • This is a Test
  • Star Wars: The Clone Wars
  • Kicked In The Nuts World Record Holder

user8

  • Inkheart Movie
  • Funny Animation
  • 4th Goal Comedy Brisbane Roar v Perth Glory

user9

  • The Twilight Saga Eclipse Official Full Trailer (HD)
  • Funny Hugh Laurie & Stephen Fry comedy sketch! Your name, sir? – BBC comedy
  • The future for Paramotors

user10

  • Vanessa Hudgens Say Ok Music Video (Official with Zac Efron)
  • Star Wars: Retold (by someone who hasnt seen it)
  • FOOTBALL MADE IN AFRICA

user1

  • This is a Test
  • Star Wars: The Clone Wars
  • Kicked In The Nuts World Record Holder

user2

  • Transformers 2 Revenge of the Fallen Official Movie Trailer
  • Huge Rugby Hits!

admin

  • Selena Gomez & The Scene – Round & Round
  • Funny Video
  • Mr Bean – Teddy reads a book

user4

  • When I Look At You
  • COMEDY: Achmed The Dead Terrorist (ventriloquist)
  • Comedy Football

user6

  • Miley Cyrus – Cant Be Tamed
  • Ash Makes Fun Of Akshays Wig

  • This is a Test
  • Inkheart Movie
  • The Twilight Saga Eclipse Official Full Trailer (HD)

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

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

ولي نمي‌دونم ديگه چرا ادمين را ليست مي‌كنه اون كه رولش Administrator هست.؟!

لینک به ارسال

تابع get_the_author_ID که در کد استفاده می کنید از وردپرس 2.8 حذف شده. شاید چون خروجی نداره همه رول ها رو نمایش میده.

اگر هم تعداد مدیرها ثابت هست میتونید در تابع get_users اونها رو با خاصیت exclude نادیده بگیرید:

http://codex.wordpress.org/Function_Reference/get_users

در مورد اونهایی که پست ندارن باید قبل از foreach شرط بزارید که $recentposts مقداری داره یا خیر. یا اون رو count کنید و بعد foreach رو اجرا کنید.

لینک به ارسال

مسئله صفحه بندی را میتوانید با تابع wp_reset_postdata و wp_reset_query حل کنید

برای لیست نویسنده ها

http://codex.wordpress.org/Function_Reference/wp_list_authors

لینک به ارسال

متشكرم از پاسختون

اما تعداد نويسنده‌ها ثابت نيستند. مي‌فرماييد چه كار كنم؟

میتونید از طریق سلکت به دیتابیس رول های مدیریت رو پیدا و کاربران رو توی آرایه بریزید و بعد exclude کنید. فقط بحث نمایش ندادن مدیر هست درسته؟

لینک به ارسال

دوستان من حرفه‌ای نیستم و با این توضیحات نتونستنم کاری بکنم. متأسفانه با کدنویسی php و تابع‌های وردپرس آشنا نیستم.

به هر حال من این درخواست را در پونیشا به عنوان یک پروژه ثبت کردم. دوستانی که مایل هستند این کار را انجام دهند خواهش می‌کنم پیشنهادهای خودشون اینجا ارسال کنند.

متشکر می‌شم کمک کنید. مخصوصا از آقا مرتضی کمک می‌خوام.

لینک به ارسال

شما دقیقا موارد و مشکلاتتون رو لیست وارد همینجا بنویسید. من کد رو براتون آماده کنم(در اوغات بیکاریم ;)).

لینک به ارسال

مهربانا...!

خيلي لطف داريد.

خواسته من دقيقاً همون چيزي هست كه در پست اول در موردش كمك خواستم.

در واقع يك اسلايدر از نويسندگان سايت كه با jquery امكان نمايش بقيه اونها فراهم ميشه.

اگر شما زحمت بكشيد، فقط بخش استخراج نويسنده‌ها به همراه لينك سه تا از نوشته‌هاشون.

تعداد نويسنده‌ها هم مشخص نيست.

البته با توجه به فعاليتي كه از شما در اينجا و اونجا مشاهده مي‌شه، بعيد مي‌دونم حالا حالا نوبت به ما برسه شما وقت فراغتي پيدا كنيد.

البته شما در اين زمينه خيلي كمك كرديد ولي چه كار كنم كه من خيلي وارد نيستم :blink:

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

من روی این بخش کار میکنم.

پ.ن:

اونجا خیلی وقت هست فعالیتی نداریم ;)

لینک به ارسال

اگر زحمت می‌کشید و دو سه روزه این کار دست ما رو میگره لطف کنید خبر بدید که پروژه رو توی پونیشا لغو کنم.

البته من دوست داشتم زحمت شما بدون اجر نباشه.

خیلی لطف دارید.

لینک به ارسال

شما اونجا رو میتونید لغو کنید. یا من یا یکی از دوستان کمکتون میکنه.

لینک به ارسال

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

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

echo $author_name;
query_posts("showposts=3&author=$author_id");
while (have_posts()) : the_post();
?>
<ul>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
</ul>
<?php
endwhile;
wp_reset_query();

}//end foreach
?>

لینک به ارسال

آقا خيلي سالاري

فقط يه مشكل هست.

اين كد نويسندگان را بر اساس نام نويسنده مرتب مي‌كنه.

user1

post 3 from user 1

post 2 from user 1

post 1 from user 1

user2

user3

user4

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

user 4

post 3 from user 4

post 2 from user 4

post 1 from user 4

user2

user5

user1

به نظرم، دوتا حلقه بايد توي هم باشه. يكي براي استخراج نويسنده‌ها بر اساس آخرين نوشته‌ها

و ديگري استخراج نوشته‌هاي هر نويسنده.

خيلي ممنونم.

لینک به ارسال

الان لیست درست هست و فقط نیاز به مرتب سازی نویسندگان براساس تاریخ ارسال آخرشون دارید؟

لینک به ارسال

توی مثال نمونه‌اش را ذکر کردم.

الان کاربرها بر اساس نام کاربری مرتب شده‌اند.

کاربرها اهمیت ندارند. این آخرین پست هست که مهم است. باید دیده شود که مربوط به کدام نویسنده است، بعد نام نویسنده بیاید و سه تا از بقیه نوشته‌های او.

به همین ترتیب پست بعدی. اگر مربوط به کاربر اول بود که نامش ذکر شده است (و بالتبع عنوان پست هم جزء مطالب آن نویسنده آمده است) این پست نادیده گرفته می‌شود و اگر مربوط به نویسنده جدید هست، نام نویسنده و سه تا از نوشته‌های او ذکر می‌شود.

در نتیجه همیشه در قسمت بالای لیست، نویسنده‌ای قرار می‌گیرد که آخرین پست را ارسال کرده است.

بابا شب زنده‌دار.... ;)

خیلی متشکرم.

لینک به ارسال

حقیقتش کمی گنگ شد برام!

شما یک عکس شماتیک از موردتون بکشید و اینجا قرار بدید تا براتون تکمیل کنم.

لینک به ارسال

آقا مرتضي خيلي لطف داريد. بفرماييد. اين هم تصوير صفحه اول

post-1440-0-04086700-1360517613_thumb.pn

توجه بفرماييد كه

1 - من 10 تا نويسنده را مي‌خواهم فهرست كنم كه در اينجا شش‌تا را براي مثال آورده‌ام

2 - نويسنده‌هاي شماره 3، 4، 5 و 6 هركدام چند پست دارند كه در صفحه اول نيامده ولي در كل، مطالبي را به سايت ارسال كرده‌اند. پس بايد در ليست نوشته‌هاشون درج بشود.

نمي‌دونم چرا ايميل آگاه‌سازي پاسخ‌ها براي من نيومده. دو روز هست كه منتظر جواب هستم. فكر كردم كسي به فكر من نيست. اين را هم كه ديدم، به صورت اتفاقي دنبال چيز ديگه‌اي اومده بودم توي سايت كه ديدم مطلب جديد هست. :( فكر كنم چون عجله دارم اين بلاها سرم مياد. ;)

ویرایش شده توسط pirooz
لینک به ارسال
1 - من 10 تا نويسنده را مي‌خواهم فهرست كنم كه در اينجا شش‌تا را براي مثال آورده‌ام

این مهم نیست. میشه محدودش کرد.

2 - نويسنده‌هاي شماره 3، 4، 5 و 6 هركدام چند پست دارند كه در صفحه اول نيامده ولي در كل، مطالبي را به سايت ارسال كرده‌اند. پس بايد در ليست نوشته‌هاشون درج بشود.

خوب اینهم لحاظ شده.اسمشون میاد و فقط براساس پست هایی که خودشون دادن در بالا لیست میشن.

اما من متوجه نشدم الان مشکلی که در کد مونده چی هست؟!

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...