رفتن به مطلب

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


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

سلام

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


<?php
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10');
if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<?php
if ( has_post_thumbnail() ) {?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a>
<?php }
else {?>
<a href="<?php the_permalink(); ?>"><img src="<?php bloginfo('template_url'); ?>/images/no-thumbnail.png" /></a>
<?php
}
?>
<div class="recent_post_det">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</div>
</li>
<?php
endwhile; endif;
wp_reset_query();
?>

حالا می خواهم اگر امکان داشته باشه چند قابلیت دیگه بهش اضافه کنم.

  1. نمایش پر بازدیدترین مطالب در ماه
  2. نمایش پربازدیدترین مطالب هر دسته به صورت خودکار (یعنی وقتی این کد در دسته ای اجرا شد به صورت خودکار پربازدیدترین مطالب اون دسته را لیست کند)

لینک به ارسال

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);

  • امتیاز 7
لینک به ارسال

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);

این کد را باید جایگزین کد زیر کنم؟


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

لینک به ارسال

برای نمایش در محدوده یک ماه مقادیر زیر رو به کوئری اضافه نمایید:


'year' => date('Y'), // Current year
'monthnum' => date('n') // Current month

  • امتیاز 5
لینک به ارسال
  • 4 هفته بعد...

برای نمایش در محدوده یک ماه مقادیر زیر رو به کوئری اضافه نمایید:


'year' => date('Y'), // Current year
'monthnum' => date('n') // Current month

خوب مگر کد زیر کئوری نیست؟


query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10');

اگر بله کجا باید کد زیر را بگذارم؟


'monthnum' => date('n') // Current month

لینک به ارسال

نمونه:


$week = date('W');
$year = date('Y');
$query = new WP_Query( 'year=' . $year . '&w=' . $week );

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


query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10');

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

لینک به ارسال

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

لینک به ارسال

تست:


$week = date('W');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10'&year=' . $year . '&w=' . $week');

  • امتیاز 2
لینک به ارسال

به شکل زیر گذاشتم


<?php
$week = date('W');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10'&year=' . $year . '&w=' . $week');
if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php
endwhile; endif;
wp_reset_query();
?>

ولی ارور زیر را می دهد


Parse error: syntax error, unexpected '=' in C:\xampp\htdocs\wordpress\wp-content\themes\officall-dnoj\sidebar.php on line 16

لینک به ارسال

query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&w=' . $week');

  • امتیاز 2
لینک به ارسال


query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&w=' . $week');

ممنون ولی این یکی که اصلا کار نمی کنه چونکه بعد از =10 شما علامت ' را برداشتید و تمام کدهای بعد از اینجا دیگه غیر فعال می شوند.

لینک به ارسال

query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&w=' . $week);

یا

query_posts("meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=$year&w=$week");

  • امتیاز 1
لینک به ارسال

query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&w=' . $week);

یا

query_posts("meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=$year&w=$week");

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


$week = date('W');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&w=' . $week);

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

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

پارامترهای زمانی

http://codex.wordpre...Time_Parameters

من کد را با شکل زیر تغییر دادم درست هست؟


$week = date('W');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $today["mon"] );

لینک به ارسال

من کد را با شکل زیر تغییر دادم درست هست؟


$week = date('W');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $today["mon"] );


$month = date('m');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $month)

  • امتیاز 1
لینک به ارسال


$month = date('m');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $month)

این کد هیچ مطلب را نشان نمی دهد ولی کد قبلی یعنی کد زیر مطالب را نشان می دهد


$week = date('W');
$year = date('Y');
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10&year=' . $year . '&monthnum=' . $today["mon"] );

لینک به ارسال

کد قبلی بخش monthnum کاری انجام نمیدهد

به همین دلیل دارای فیلتر براساس ماه نیست و خروجی دارد

  • امتیاز 1
لینک به ارسال

کد قبلی بخش monthnum کاری انجام نمیدهد

به همین دلیل دارای فیلتر براساس ماه نیست و خروجی دارد

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

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...