رفتن به مطلب

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


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

سلام

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


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

لینک به ارسال

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

لینک به ارسال
  • 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 );

لینک به ارسال

نمونه:


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

لینک به ارسال

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


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

لینک به ارسال


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

لینک به ارسال

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)

لینک به ارسال


$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 کاری انجام نمیدهد

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

لینک به ارسال

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

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

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

لینک به ارسال

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

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

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

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

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

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

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

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

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