رفتن به مطلب

افزودن چند ویژگی به کد پر بازدیدترین مطالب


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

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

در ماه جاری پستی داشتید؟

لینک به ارسال

در ماه جاری پستی داشتید؟

الان گرفتم. این کد مطالب محبوب منتشر شده ماه جاری را نشون میده. چجوری میشه ماه جاری را از یک ماه به 3 ماه جاری یا بیشتر تغییر داد؟

لینک به ارسال

اینو قبل از کوئری اجرا کنید


function filter_where( $where = '' ) {
$where .= " AND post_date >= '".date("Y-m-d")."' AND post_date < '".date('Y-m-d', strtotime('-90 days'))."'";
return $where;
}
add_filter( 'posts_where', 'filter_where' );

اینو بعد از کوئری


remove_filter( 'posts_where', 'filter_where' );

لینک به ارسال

کد ها را به شکل زیر قرار دادم ولی ارور زیر را می دهد


$month = date('m');
$year = date('Y');
function filter_where( $where = '' ) {
$where .= " AND post_date >= '".date("Y-m-d")."' AND post_date < '".date('Y-m-d', strtotime('-90 days'))."'";
return $where;
}
add_filter( 'posts_where', 'filter_where' );
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $month);
remove_filter( 'posts_where', 'filter_where' );
if (have_posts()) : while (have_posts()) : the_post(); ?>


Fatal error: Cannot redeclare filter_where() (previously declared in C:\xampp\htdocs\wordpress\wp-content\themes\officall-dnoj\sidebar.php:17) in C:\xampp\htdocs\wordpress\wp-content\themes\officall-dnoj\sidebar.php on line 67

لینک به ارسال

چون قبلا filter_where را دارید

نام تابع filter_where را تغییر دهید در کدها

لینک به ارسال

نام تابع را به شکل زیر تغییر دادم ولی هیچ چیزی نشان نمی دهد


$month = date('m');
$year = date('Y');
function filter_date( $where = '' ) {
$where .= " AND post_date >= '".date("Y-m-d")."' AND post_date < '".date('Y-m-d', strtotime('-90 days'))."'";
return $where;
}
add_filter( 'posts_where', 'filter_date' );
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $month);
remove_filter( 'posts_where', 'filter_date' );
if (have_posts()) : while (have_posts()) : the_post(); ?>

لینک به ارسال

این خط رو تغییر دهید


$where .= " AND post_date <= '".date("Y-m-d")."' AND post_date > '".date('Y-m-d', strtotime('-90 days'))."'";

لینک به ارسال

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


$month = date('m');
$year = date('Y');
function filter_date( $where = '' ) {
$where .= " AND post_date <= '".date("Y-m-d")."' AND post_date > '".date('Y-m-d', strtotime('-90 days'))."'";
return $where;
}
add_filter( 'posts_where', 'filter_date' );
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $month);
remove_filter( 'posts_where', 'filter_date' );
if (have_posts()) : while (have_posts()) : the_post(); ?>

لینک به ارسال

در کل الگوریتمش درست نیست:

روش درست رو میگم خودتون کدش رو بزنید. در مورد روشها هم بارها بحث شده:

برای پربازدیدترین مطالب هفته:

شناسه هفته جاری را در option تنظیماتی ذخیره کنید

در تابعی:

ابتدا بررسی کنید هفته جاری همان هفته ذخیره شده هست. در غیر این صورت شماره هفته جاری را ذخیره کنید

در هنگام بازدید پست ، زمینه دلخواهی را +1 کنید

اگر هفته تغییر کرده بود باید 1 بشه

سپس با wp_query براساس زمینه کوئری بگیرید

http://codex.wordpre...ield_Parameters

لینک به ارسال

در کل الگوریتمش درست نیست:

روش درست رو میگم خودتون کدش رو بزنید. در مورد روشها هم بارها بحث شده:

مشکل اینجاست که من برنامه نویسی بلد نیستم. الگوریتمش تا جایی که مطالب ماه جاری رو نشون میداد درسته؟

لینک به ارسال

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

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

لینک به ارسال

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

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

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

لینک به ارسال

تا نزدیک رو چی تفسیر کنیم ;)

احتمالا تا آخر همین ماه آماده میشه

لینک به ارسال
  • 9 ماه بعد...

سلام و خدا قوت

دوستان من گیچ شدم واقعا !

آقا من اومدم در فایل فانکشن کد زیر رو قرار دادم


function getpostviews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 View";
}
return $count.' Views';
}
function setpostviews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}

بعدش اومدم توی صفحه ی ادامه مطلبم کد زیر رو بعد از if(have_postst قرار دادم


<?php setPostViews(get_the_ID()); ?>

و با کد زیر در قالب سایتم قرار دادم


<?php
$week = date('W');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $month);
if (have_posts()) : while (have_posts()) : 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();
?>

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

حالا سوالی که باقی میمونه اینه آیا این کد بخش پربازدید ترین سایت من رو خبرهای پربازدید ماه امسال نشون میده یا ماه و یا کل ؟

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

لینک به ارسال

1-

http://www.wpbeginner.com/wp-tutorials/display-popular-posts-by-day-week-month-and-all-time-in-wordpress/

2


if(is_category()){
$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;
$catquery = "&cat=$cat_id";
}
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10'.$catquery);

پارسای عزیز حالا برای شناسایی خودکار برچسب باید چطوری تغییرش بدیم ؟

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

گفتم شاید با تغییر category به tag درست بشه اما درست نشد.

ممنون میشم یه راهنمایی بکنید


if(is_tag()){
$taag = get_tag( get_query_var( 'tag' ) );
$tag_id = $taag->tag_ID;
$taag = "&tag=$tag_id";
}

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

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

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

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

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

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

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

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

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

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