رفتن به مطلب

افزونه WP-PostViews و خروجی پربازدیدترین ماه


::AmiR::

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

سلام و خدا قوت

من از افزونه WP-PostViews برای مشاهده مطالب پربازدیدترین مطالب سایت استفاده میکنم

در حال حاضر با استفاده از کد


<?php get_most_viewed('post', 20);?>

من 20 مطلب پربازدید سایت رو نشون میدم.

جسارتا راهی نداره بتونم کاری کنم که مطالب پربازدید برای هر ماه باشه؟ چون اینجوری مطلب 8 سال پیش من رو داره به عنوان پربازدید نشون میده و ضاهرا قرار هم نیز مطلب دیگه ای جاش رو بگیره؟!

لینک به ارسال

تابع مستقیم نداره

با کوئری زیر می تونید

بیش از ده بار مفصلا روش بحث شده برای توضیح بیشتر جستجو کنید


<?php
$today = getdate();
$recent = new WP_Query('meta_key=views&year=' . $today["year"] . '&monthnum='. $today["mon"] . '&showposts=10&orderby=meta_value_num');if($recent->have_posts()) :?>
<ul>
<?php while($recent->have_posts()) : $recent->the_post();?>
<li><a href="<?php the_permalink();?>"><?php the_title();?></a> (<?php if(function_exists('the_views')) { the_views(); } ?>)(<?php the_date('Y-m');?></li>
<?php endwhile; ?>
</ul>
<?php endif;?>
<?php wp_reset_query(); ?>

لینک به ارسال

خدا قوت مجدد

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

در کل هدف این بود ببینیم آیا با این افزونه میشه کاری کرد یا خبر ! :(

لینک به ارسال

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

(اول کد را تست کنید بعد در مورد مشکلاتش صحبت می کنیم)

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

لینک به ارسال

آقااا خداا قوت و تشکر فراوان

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

من با اجازه ی شما کد رو به صورت زیر ویرایش کردم


<?php
$today = getdate();
$recent = new WP_Query('meta_key=views&year=' . $today["year"] . '&monthnum='. $today["mon"] . '&showposts=10&orderby=meta_value_num');if($recent->have_posts()) :?>
<?php while($recent->have_posts()) : $recent->the_post();?>
<li><a class="title4" href="<?php the_permalink();?>"title="<?php the_time('j F Y') ?>" target="_blank"><?php the_title();?></a></li>
<?php
endwhile; endif;
wp_reset_query();
?>

امیدوارم که چیزی رو خرابکاری نکرده باشم ، فقط برای اینکه مطمئن بشم " این کدی که شما دستور دادید 10 خبر پربازدید ماه جاری رو نشون میده دیگه؟!! آخه توی لوکال که تست میکنم پست های اسفند رو هم نشون میده.! :huh:

لینک به ارسال

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

در تایپیکهای مربوط به گروه وردپرس پارسی مطرح کنید کمکتون می کنند

لینک به ارسال
  • 2 هفته بعد...

درود.

برای هفته چه جوری می شه؟ مثلا بصورت زیر در نظر گرفتم اما کار نمی کنه و چیزی نشون نمی ده؟ جایی غلط هست؟


<ul>
<?php
$week = date('W');
$year = date('Y');
query_posts('post_type=post&posts_per_page=10&orderby=meta_value_num&meta_key=views&order=DESC&year=' . $year . '&w=' . $week);

while (have_posts()): the_post(); ?>

<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></li>

<?php
endwhile;
wp_reset_query();
?>
</ul>

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

روز شروع هفته در پیشخوان - تنظیمات - همگانی را تنظیم کنید

قاعدتا باید نشون بده

لینک به ارسال

شروع هفته دوشنبه باشه نشون می ده!!! شنبه اگه بذاریم نشون نمی ده.یعنی راهی نیست کلا بر اساس تاریخ شمسی نشون بده؟

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

اگر از افزونه parsidate جای جلالی استفاده کنید می تونید از تابع


parsidate('w',$datetime='now',$lang='eng')

استفاده کنید

لینک به ارسال
  • 2 هفته بعد...
اگر از افزونه parsidate جای جلالی استفاده کنید می تونید از تابع
 parsidate('w',$datetime='now',$lang='eng') 

استفاده کنید

ببخشید این کد رو باید جایگزین کدام بخش کنم که بشه آخرین اخبار ماه شمسی رو نشون بده؟

کد من :


<?php
$today = getdate();
$recent = new WP_Query('meta_key=views&year=' . $today["year"] . '&monthnum='. $today["mon"] . '&showposts=10&orderby=meta_value_num');if($recent->have_posts()) :?>
<?php while($recent->have_posts()) : $recent->the_post();?>
<li><a class="title4" href="<?php the_permalink();?>"title="<?php the_time('j F Y') ?>" target="_blank"><?php the_title();?></a></li>
<?php
endwhile; endif;
wp_reset_query();
?>

لینک به ارسال

ببخشید دوستان کسی نمیتونه بنده رو در زمینه ی موضوعی که مطرح کردم راهنمایی کنه؟

لینک به ارسال

<?php
$year = parsidate('Y',$datetime='now',$lang='eng');
$month = parsidate('m',$datetime='now',$lang='eng');
$recent = new WP_Query('meta_key=views&year=' . $year . '&monthnum='. $month . '&showposts=10&orderby=meta_value_num');if($recent->have_posts()) :?>
<?php while($recent->have_posts()) : $recent->the_post();?>
<li><a class="title4" href="<?php the_permalink();?>"title="<?php the_time('j F Y') ?>" target="_blank"><?php the_title();?></a></li>
<?php
endwhile; endif;
wp_reset_query();
?>

لینک به ارسال


<?php
$year = parsidate('Y',$datetime='now',$lang='eng');
$month = parsidate('m',$datetime='now',$lang='eng');
$recent = new WP_Query('meta_key=views&year=' . $year . '&monthnum='. $month . '&showposts=10&orderby=meta_value_num');if($recent->have_posts()) :?>
<?php while($recent->have_posts()) : $recent->the_post();?>
<li><a class="title4" href="<?php the_permalink();?>"title="<?php the_time('j F Y') ?>" target="_blank"><?php the_title();?></a></li>
<?php
endwhile; endif;
wp_reset_query();
?>

سلام و خداقوت و تشکر فراوان

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

لینک به ارسال

خوب مسئله اینجاست که تاریخ روی دیتابیس میلادی ذخیره می شه و مقایسه باز هم درست نمی شه اگر هم بیاییم برشگردون شمسی هیچ تفاوتی در خروجی ایجاد نمی شه یعنی از 10 دی ماه تا 10 بهمن ماه باشه مطالب ژانویه برای کاربران نمایش داده می شه الان آرشیوهای وردپرس هم همینطوره چون تاریخ روز جاری را می گیره میلادی می کنه و با تقویم میلادی چک می کنه بهترین کار استفاده از همون کدهاست و اینکه روی این ده روز اختلاف حساس نباشید اما اگر دوست دارید دقیقتر به نتیجه برسید باید یک پست متا ایجاد کنید و ماه شمسی هر مطلب را در آن ذخیره کنید تا به وسیله کدهای بالا بتونید مطالب ماه شمسی مورد نظرتون رو احضار کنید

لینک به ارسال

خوب مسئله اینجاست که تاریخ روی دیتابیس میلادی ذخیره می شه و مقایسه باز هم درست نمی شه اگر هم بیاییم برشگردون شمسی هیچ تفاوتی در خروجی ایجاد نمی شه یعنی از 10 دی ماه تا 10 بهمن ماه باشه مطالب ژانویه برای کاربران نمایش داده می شه الان آرشیوهای وردپرس هم همینطوره چون تاریخ روز جاری را می گیره میلادی می کنه و با تقویم میلادی چک می کنه بهترین کار استفاده از همون کدهاست و اینکه روی این ده روز اختلاف حساس نباشید اما اگر دوست دارید دقیقتر به نتیجه برسید باید یک پست متا ایجاد کنید و ماه شمسی هر مطلب را در آن ذخیره کنید تا به وسیله کدهای بالا بتونید مطالب ماه شمسی مورد نظرتون رو احضار کنید

پس در کل این موضوع فعلا نشدنی هست !

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

اما در کل از لطف شما ممنونم.اگه راهی پیدا شد امیدوارم دوستان در این تایپیک عنوان کنند که منم بتونم از اون راه استفاده کنم.

لینک به ارسال

بعیده که از کدها و افزونه های رایگان به خواستتون برسید احتمالا باید بدید براتون یک افزونه سفارشی نوشته بشه ولی فکر کنم بهترین روش نوشتنش اینه که افزونه شمارنده تون باز نویسی بشه تا خروجی متا تگ view یک آرایه بشه که خروجی اول تعداد بازدید باشه و دومین آرایه اش زمان ارسال پست با تاریخ شمسی و اعداد لاتین و در کوئریتون برای مقدار آرایه دوم تساوی قرار داده بشه و بر اساس مقدار آرایه ی اول سورت بشه

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

لینک به ارسال

درود.فرض کنید ما برای هفته کوئری نوشتیم.حالا باید کاربر حتما روز شروع هفته رو دوشنبه بذاره تا درست کار کنه.آیا در کوئری می شه تعریف کرد که از دوشنبه حساب کنه و اگر تنظیمات شروع هفته رو شنبه بود مشکلی پیش نیاد?و اینکه اگر شروع هفته دو شنبه بود کوئری از 2 روز قبل هم مطالب هفته ی پیش رو در نظر بگیره?

لینک به ارسال

فکر کنم بهترین راه تن دادن به تقویم جهانیه کارهایی که گفتید شدنیه ولی هر کدوم کوئری خودش رو می طلبه که بجز مشکلات نوشتن و ست کردنش با بقیه کوئری های سایت باعث بالا رفتن مصرف منابع و ساسپند سایت هم خواهد شد مگر به صورت کاملا اصولی یک افزونه ی کامل (یک کلاس درست و کامل با توابع و متغیرهای مورد نیاز) نوشته بشه که کار بسیار پر زحمت و وقت گیریه

لینک به ارسال

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

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

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

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

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

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

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

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

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