رفتن به مطلب

نمایش 5 کاربر برتر بر اساس تعداد پست


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

با عرض سلام

می خوام یه همچین بخشی رو در سایتم ایجاد کنم منتها هر چه قدر میگردم بیشتر گیج میشم.متاسفانه

در این بین علاوه بر سوال اصلیم یه چند تا سوال فرعی هم برام پیش اومده که میپرسم

یک - وقتی یه همچین کدی رو پیدا میکنیم باید چه طور ازش استفاده کنیم؟

select

{$wpdb->users}.user_nicename,

count({$wpdb->posts}.ID) as post_count

from {$wpdb->posts}

left join {$wpdb->users} on {$wpdb->posts}.post_author = {$wpdb->users}.ID

where

{$wpdb->posts}post_status = 'publish';

دو - من قصد داشتم از بخشی از کد زیر استفاده کنم ولی هر کاری کردم نتونستم اون رو اکو کنم و همش ایراد میگرفت

<p>User ID ' . $user->ID . ' ' . $user->user_firstname . ' ' . $user->user_lastname . ', posts in category 3: ' . $count . '</p>

سه - سوال اصلیم که همونیه که توی تیتر سوال پرسیدم و اون هم اینه که چه طور بر فرض 5 ارسال کننده برتر رو بر اساس تعداد ارسال نشون بدم

به این صورت : نام کاربری - تعداد پست

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

<?php foreach ( get_users('order=DESC&orderby=post_count&number=5') as $user ) : ?>

<li class="wicol">

<span class="quantity">1</span>

<span class="itemName"><?php echo $user->display_name; ?></span>

<span class="popbtn" data-original-title="" title=""><a class="arrow"></a></span>

<span class="posts-number">این بخش رو نمیدونم چی رو باید اکو کنم تا تعدا پست ها رو نشون بده</span>

</li>

<?php endforeach; ?>

دست شما هم درد نکنه

لینک به ارسال
در در 11/19/2014 at 00:10، majid1889 گفته است :

از این تابع استفاده کنید :

 

<?php wp_list_authors('orderby=post_count&&order=DESC'); ?>

دست شما درد نکنه ولی شما مثل اینکه دقیق متوجه منظور بنده نشدید.

من بر اساس تعدا پست یوزر ها رو مرتب کردم

فقط نمیدونم با چه کدی تعدا پست ها رو نشون بدم

 

<?php foreach ( get_users('order=DESC&orderby=post_count&number=5') as $user ) : ?>

<li class="wicol">

<span class="quantity">1</span>

<span class="itemName"><?php echo $user->display_name; ?></span>

<span class="popbtn" data-original-title="" title=""><a class="arrow"></a></span>

<span class="posts-number">این بخش رو نمیدونم چی رو باید اکو کنم تا تعدا پست ها رو نشون بده</span>

</li>

<?php endforeach; ?>

 

لینک به ارسال

کدی که دادند پاسخ تایپیکتونه اما سئوالات دیگه تون

توصیه اول: هر کدی را از هرجا پیدا کردید ازش استفاده نکنید

کدشما احضار کننده کوئری از دیتابیسه که با توجه به توابع وردپرس برای مورد شما کارایی نداره

در کد دوم هم


$user->display_name

رو می تونید اکو کنید

دست شما درد نکنه ولی شما مثل اینکه دقیق متوجه منظور بنده نشدید.

من بر اساس تعدا پست یوزر ها رو مرتب کردم

فقط نمیدونم با چه کدی تعدا پست ها رو نشون بدم

<?php foreach ( get_users('order=DESC&orderby=post_count&number=5') as $user ) : ?>

<li class="wicol">

<span class="quantity">1</span>

<span class="itemName"><?php echo $user->display_name; ?></span>

<span class="popbtn" data-original-title="" title=""><a class="arrow"></a></span>

<span class="posts-number">این بخش رو نمیدونم چی رو باید اکو کنم تا تعدا پست ها رو نشون بده</span>

</li>

<?php endforeach; ?>

1. این کد را به functions.php اضافه کنید


function get_user_posts_count($user_ID){
$args = array('author' => $user_ID, 'posts_per_page' => -1);
$the_query = new WP_Query( $args );
if ($the_query->post_count > 0){
return $the_query->post_count;
}
else{
return 0;
}
}

و


get_user_posts_count($user->ID);

را در کد خودتون اکو کنید

لینک به ارسال

با سلام

دست شما درد نکنه واقعا لطف کردید

فقط یه سوال؟

الان حلقه ی من شده این


<?php foreach ( get_users('order=DESC&orderby=post_count&number=5') as $user ) : ?>
<li class="wicol">
<span class="quantity">1</span>
<span class="itemName"><?php echo $user->display_name; ?></span>
<span class="popbtn" data-original-title="" title=""><a class="arrow"></a></span>
<span class="posts-number"><?php echo get_user_posts_count($user->ID); ?></span>
</li>
<?php endforeach; ?>

آیا میشه بهینه ترش کرد؟

یعنی همین کارکرد رو داشته باشه ولی ساده تر؟

با تشکر از شما

لینک به ارسال

با سلام مجدد

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

در حلقه


<?php foreach ( get_users('order=DESC&orderby=post_count&number=5') as $user ) : ?>
<li class="wicol">
[color=#ff0000]<span class="quantity">1</span>[/color]
<span class="itemName"><?php echo $user->display_name; ?></span>
<span class="popbtn" data-original-title="" title=""><a class="arrow"></a></span>
<span class="posts-number"><?php echo get_user_posts_count($user->ID); ?></span>
</li>
<?php endforeach; ?>

<span class="quantity">1</span>

اون قسمتی که با قرمز نشون دادم باید برای هر نفر یه عدد بنویسه

یعنی نفر اول یک و دوم دو و سوم سه.

ولی الان همیشه 1 رو نشون میده و حتی از counter-increment و counter-reset هم استفاده کردم . شماره رو میسازه ولی همیشه یک رو نشون میده.

نمیدونم چی کار کنم

لطفا اگه وقت داشتید جواب ما رو هم بدید

دست شما درد نکنه

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

<?php $x=1;
foreach ( get_users('order=DESC&orderby=post_count&number=5') as $user ) : ?>
<li class="wicol">
<span class="quantity"><?php echo $x;?></span>
<span class="itemName"><?php echo $user->display_name; ?></span>
<span class="popbtn" data-original-title="" title=""><a class="arrow"></a></span>
<span class="posts-number"><?php echo get_user_posts_count($user->ID); ?></span>
</li>
<?php
$x +=1;
endforeach; ?>

لینک به ارسال

من اینکارو تو سایت یکی از مشتریا انجام دادم

اینطور عمل کردم :


<ul class="author-list">
<li>نویسندگان !</li>
<?php wp_list_authors('exclude_admin=0&&orderby=post_count&&order=DESC&&optioncount=true'); ?>
</ul>

لینک به ارسال

آقای فخار و آقا مجید ، دست شما درد نکنه

به کمک شما این بخش تموم شد.

با این زبان ضعیف بنده فکر نکنم تا 100 سال میتونستم این کد رو درستش کنم.

امیدوارم بتونم جبران کنم

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

با سلام

مثل اینکه هنوز یه نکته دیگه هم وجود داره

و اون هم اینه که من داخل حلقه یه تولتیپ گذاشتم به این صورت

27479999666852485298.jpg

و میخوام که این تولتیپ هم جزوی از حلقه باشه

ولی نیست

بوسیله افزونه extra user details که آقا مجید معرفی کردن یه چند تا فیلد اضافه کردم و کد مخصوصش به هر کدوم رو در تگ a در تولتیپ قراردادم ولی تمام لینکها یکیه

نمیدونم چی کار کنم

این کد ی که داخل فایل ایندکس هست


<?php $x=1; foreach ( get_users( 'order=DESC&orderby=post_count&number=5') as $user ) : ?>
<li class="wicol">
<span class="quantity"><?php echo $x;?></span>
<span class="itemName"><?php echo $user->display_name; ?></span>
<span class="popbtn" data-original-title="" title=""><a class="arrow"></a></span>
<span class="posts-number"><?php echo get_user_posts_count($user->ID); ?></span>
<div id="popover" style="display: none">
<a href="<?php the_author_meta('fb12'); ?>"><i class="fa fa-facebook"></i></span></a>
<a href="<?php the_author_meta('yt12'); ?>"><i class="fa fa-youtube"></i></a>
<a href="<?php the_author_meta('gp12'); ?>"><i class="fa fa-google-plus"></i></a>
<a href="<?php the_author_meta('ig12'); ?>"><i class="fa fa-instagram"></i></a>
</div>
</li>

<?php $x +=1; endforeach; ?>

این هم کدی که داخل فایل js هست


$(function() {
var pop = $('.popbtn');
var row = $('.wicol:not(:first):not(:last)');

pop.popover({
trigger: 'manual',
html: true,
container: 'body',
placement: 'bottom',
animation: false,
content: function() {
return $('#popover').html();
}
});

pop.on('click', function(e) {
pop.popover('toggle');
pop.not(this).popover('hide');
});
$(window).on('resize', function() {
pop.popover('hide');
});
row.on('touchend', function(e) {
$(this).find('.popbtn').popover('toggle');
row.not(this).find('.popbtn').popover('hide');
return false;
});
});

در ضمن یه نکته در طراحی از بوت استرپ استفاده کردم.

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

منظورتون از اینکه الان توی حلقه نیست چیه؟

با این کدها فقط یک ای دی popover فراخوانی می شه

این را


$('#popover').html();

به


$(this).nextAll('#popover').html();

تغییر بدید و تست کنید

لینک به ارسال

متاسفانه اثری نداشت کدی که معرفی کردید.

منظورم اینه که مشخصات هر یوزری رو که در حلقه ی پر ارسال ترین ها قرار گرفت

همراه با یوزرنیم و تعداد ارسال هاش

اون فیلدایی که اضافه کردم رو هم نشون بده.

در حال حاظر فقط مال یک یوزر برای همه نشون داده میشه

لینک به ارسال

کد جی کوئریتون بر اساس یک آی دیه

کد جی کوئری را اصلاح کنید

مشکلتون ربطی به موضوع تایپیک نداره اگر مشکلتون رو نتوستید حل کنید در بخش مربوط به css یا jquery تایپیک بزنید

لینک به ارسال

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

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

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

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

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

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

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

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

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