رفتن به مطلب
mehotkhan

پربازدید ترین مطالب با قابلیت تنظیم بازه ی زمانی

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

سلام ، البته چنین چیزی پلاگینش هست ، ولی پلاگین زیاد جالب نیست :D

توی انجمن آموزش قرار دادن بازدید های پست رو آقا مرتضی آموزش دادن ، پربازدیترین مطالب ، از طرفی یه کد هم هست که تعداد پست ها رو توی امروز می شماره نمایش تعداد مطالب امروز یا تاریخی خاص ، حالا بحث من اینه ،

نمیشه با قاطی کردن این دو کد ، کاری کرد که پر بازدید ترین مطالب توی یه بازه ی زمانی نشون داده بشه ؟ مثلا از طریق کد دوم ، تعداد پست هایی که توی یه بازه ی زمانی داده شدن رو پیدا میکنیم ، بعد از طریق مقایسه ی بازدید هاشون که همون کد اول باشه ، اونا رو بر اساس میزان بازدیدشون نشون بدیم ، ولی خب نیاز به کار با php داره ، دوستانی که وارد هستن به نظرتون میشه این کار رو انجامش داد ؟

به اشتراک گذاری این ارسال


لینک به ارسال

سلام

طبق همون کد میشه و باید کمی با تاریخ ها بازی کرد!

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

<?php
function filter_where($where = '') {
$where .= " AND post_date >= '2012-05-01' AND post_date <= '2012-05-15'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts($query_string);
?>

به اشتراک گذاری این ارسال


لینک به ارسال

سلام

ممنون.

نمیشه کاری کرد که پربازدیدترین مطالب روز قبل رو خودکار نشون بده؟!!

به اشتراک گذاری این ارسال


لینک به ارسال

باید سیستم خودش بازه تعیین کنه ، فکر کنم بر اساس تاریخ امروز ، بشه اتوماتیک بازه های زمانی رو تعیین کرد ، یه کمی باهاش ور برم ببینم چی میشه :)

به اشتراک گذاری این ارسال


لینک به ارسال

ممنون

به نتیجه رسیدید لطفا قرار بدید, هفته دیگه بهش احتیاج پیدا میکنم...

به اشتراک گذاری این ارسال


لینک به ارسال

با تلفیق کدهای اصلی + کد بالا که دادم میشه.

برای دیروز هم میشه بازه امروز و امروز-1

به اشتراک گذاری این ارسال


لینک به ارسال

امیدوارم بتونم کاریش کنم :S

به اشتراک گذاری این ارسال


لینک به ارسال

با تلفیق کدهای اصلی + کد بالا که دادم میشه.

برای دیروز هم میشه بازه امروز و امروز-1

آقا مرتضی منظورم این بود که بجای این که دستی تاریخ بدیم خودش تعیین کنه؟!!!

به اشتراک گذاری این ارسال


لینک به ارسال

خوب منهم همین رو نوشتم.

شما تاریخ روز رو با تابع date میگرید و توی یک متغییر میریزید.

بعد هم یک روز کم میکنید ازش میشه دیروز.

به اشتراک گذاری این ارسال


لینک به ارسال

ببخشید, فکر کردم منظورتون چیز دیگه ای بود, در اولین فرصت انجام میدم....

(فکر کردم منظورتون دستی وارد کردن تاریخه)

ویرایش شده توسط xiiiah

به اشتراک گذاری این ارسال


لینک به ارسال

سلام ، من کد های زیر رو پیدا کردم ، که بر اساس محدودیت زمانی تنظیم شده .


//posts in the last 30 days
//$time_limit .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
//posts 30 to 60 days old
//$time_limit .= " AND post_date >= '" . date('Y-m-d', strtotime('-60 days')) . "'" . " AND post_date <= '" . date('Y-m-d', strtotime('-30 days')) . "'";
//posts for March 1 to March 15, 2009
//$time_limit .= " AND post_date >= '2009-03-01' AND post_date <= '2009-03-15'";

حالا متغیر time_limit رو توی query_posts به صورت زیر قرار دادم :


$time_limit .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
query_posts('cat=19,20&meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=18'.$time_limit);

توی سایت که گذاشتم ، ارور نداد و لود می کرد ، ولی چون مطالب سایت بازدیدی نداشتند ، نمی تونم تست کنم که آیا خروجی درست بهم می ده یا نه ، اساتید و همینطور کاربران عزیز می تونید یه تستی کنید ببینید مشکلی داره یا نه ؟

به اشتراک گذاری این ارسال


لینک به ارسال

این کد مسلما کار نمیکنه چون داره sql رو با پارامترهای وردپرس مخلوط میکنه!


add_filter( 'posts_where' , 'posts_where' );
function posts_where( $where ){
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
return $where;
}
query_posts('cat=19,20&meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=18');

بعد از حلقه هم کوئری را ریست کنید

به اشتراک گذاری این ارسال


لینک به ارسال

چند تا کد رو با هم مقایسه کرده بودم ، این رو نوشتم ف یکی از کد های اصلی هم شبیه به کدی هست که خودتون نوشتید ، الان باید محدودیت زمانی کار کنه ؟

به اشتراک گذاری این ارسال


لینک به ارسال

این کدی که گفتید رو گذاشتم ، روی کل کوری های سایت عمل کرد ، می شه به صورت تابع نوشتش که بعدا هر جا کا خواستیم تابع رو با متغیریش قرار بدیم ، اون هم خروجی بنویسه برامون ؟

به اشتراک گذاری این ارسال


لینک به ارسال

این رو بعد کوئری قرار بدید:

remove_filter( 'posts_where', 'posts_where' );

به اشتراک گذاری این ارسال


لینک به ارسال

مرسی ، یه سوال ، این کد جواب میده ؟

به اشتراک گذاری این ارسال


لینک به ارسال

مرسی ، یه سوال ، این کد جواب میده ؟

تست کنید

البته بازه زمانی از نظر بازدید نیست

از نظر تاریخ ارسال پست هست

میتوانید بازه را کمتر کنید (عدد 30)

به اشتراک گذاری این ارسال


لینک به ارسال

سلام و عرض ادب

دوستان این پست چرا پاک شده؟

http://forum.wp-parsi.com/tutorials/article/138-پربازدید-ترین-مطالب/

به اشتراک گذاری این ارسال


لینک به ارسال

سلام

بخش آموزش به طور کامل غیر فعال شده

در حال حاضر بخشی از اون مطالب در سایت اصلی قرار داده شده.

wp-parsi.com

به اشتراک گذاری این ارسال


لینک به ارسال
در 3 ساعت قبل، مهدی گفته است :

سلام

بخش آموزش به طور کامل غیر فعال شده

در حال حاضر بخشی از اون مطالب در سایت اصلی قرار داده شده.

wp-parsi.com

من که حالا به این مطلب نیاز دارم چیکار کنم؟

به اشتراک گذاری این ارسال


لینک به ارسال

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

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

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

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

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

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

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

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


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