• اطلاعیه ها

    • Saeed Fard

      سیاره وردپرس ایران   15/10/95

      سایت‌های زیادی در ایران و سرتاسر وب در زمینه گسترش وردپرس تلاش دارند و نوشته‌های آموزشی منتشر می‌کنند. اما ضرورت یک منبع خوب و ارزشمند برای جمع‌آوری بهترین‌های وب ایران و دنیا باعث ایجاد سیاره وردپرس شد تا دنبال کنندگان این موضوع به صورت یکجا و آسان بتوانند به این نوشته‌ها دسترسی داشته باشند.     در سیاره وردپرس این بستر فراهم شده است که آدرس وب‌سایت‌های مربوطه ثبت و برای این سرویس ارسال شود، آخرین نوشته‌های مفید وب‌سایت‌ها در سیاره وردپرس و نیز در بخش اخبار وردپرس پیشخوان سایت‌های وردپرسی از طریق افزونه‌ی Parsi Date نمایش داده می‌شود. همینطور کاربران از طریق عضویت در خبرنامه ایمیلی سیاره وردپرس می‌توانند به صورت دوره‌ای بهترین و جدیدترین نوشته‌های وردپرسی را که توسط اعضای تحریریه و همکاران سیاره وردپرس بررسی و تایید می‌شود را در ایمیل خود دریافت کنند.   امکانات سیاره وردپرس امکان ثبت آدرس سایت‌هایی که نوشته‌های مفید در زمینه وردپرس دارند. نمایش نوشته‌های وردپرس سایت‌ها در سیاره وردپرس نمایش نوشته‌های وردپرس در پیشخوان سایت‌های وردپرس فارسی توسط ویجت اخبار پلاگین Parsi Date و ... امکان ثبت ایمیل کاربران علاقه‌مند جهت دریافت مطالب محبوب و ویژه در خبرنامه دوره‌ای سیاره توسط اعضای تحریریه و ... جهت ثبت سایت وردپرسی یا ایمیل خود به سایت سیاره وردپرس مراجعه کنید   تاپیک پیشنهادات و همکاری در سیاره وردپرس : http://wpu.ir/qlhy5  
ssll

تغییر فانکشن محبوبترین مطالب

11 پست در این موضوع قرار دارد

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

اینم کد :


function popularPosts($num) {

global $wpdb;

$posts = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $num ");

foreach ($posts as $post) {
setup_postdata($post);
$id = $post->ID;
$title = $post->post_title;
$count = $post->comment_count;

if ($count != 0) {
$popular .= '


<table style="height:20px; border-bottom:1px solid #ccc; line-height:2em;">

<td style="width:440px;">


';
$popular .= '<a href="' . get_permalink($id) . '" title="' . $title . '">' . $title . '</a> ';
$popular .= '



</td>
</table>





';

}
}
return $popular;
}

البته مقدار cat به این صورت وارد بشه چون از یه جای دیگه مقدارشو میگیرم >>'.cat='.$iman

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

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


لینک به پست

با این کد امکانش نیست

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


لینک به پست

خب کد رو به این صورت دارم


function tie_last_posts_cattb($numberOfPosts = 5 , $thumb = true , $cats = 1){
global $post;
$orig_post = $post;
$lastPosts = get_posts('category='.$cats.'&numberposts='.$numberOfPosts.'& orderby=comment_count&order=DESC');
foreach($lastPosts as $post): setup_postdata($post);
?>
<li <?php tie_post_class(); ?>>
<?php if ( function_exists("has_post_thumbnail") && has_post_thumbnail() && $thumb ) : ?>
<div class="post-thumbnail">
<a href="<?php the_permalink(); ?>" title="<?php printf( __( 'Permalink to %s', 'tie' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php tie_thumb(); ?><span class="overlay-icon"></span></a>
</div><!-- post-thumbnail /-->
<?php endif; ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3>
<?php tie_get_score(); ?> <span class="date"><?php the_time('d F Y'); ?></span>
</li>
<?php endforeach;
$post = $orig_post;
}

. محبوبترین مطالب هست که مقدار cat رو وارد کردم . منتها الان میخوام محدود به زمانش یعنی مطالب هفته یا مطالب ماه کنم . هر چه کد در مورد محدوده زمانی بود تست کردم نشد شاید تو جا گذاری اشتباه بوده.

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


لینک به پست

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


function tie_last_posts_cattb($numberOfPosts = 5 , $thumb = true , $cats = 1){
//add_filter( 'posts_where', 'filter_where_today' );
$today = getdate();

$args=array(

'date_query' => array(
array(
'year' => $today["year"],
'month' => $today["mon"],
'day' => $today["mday"],
),
),

'cat'=>$cats,
'posts_per_page'=>$numberOfPosts,
'orderby'=>'comment_count',
'order'=>'DESC'
);
$lastPosts =new WP_Query($args);
//remove_filter( 'posts_where', 'filter_where_today' );
while($lastPosts->have_posts()):$lastPosts->the_post(); ?>
<li <?php tie_post_class(); ?>>
<?php if ( function_exists("has_post_thumbnail") && has_post_thumbnail() && $thumb ) : ?>
<div class="post-thumbnail">
<a href="<?php the_permalink(); ?>" title="<?php printf( __( 'Permalink to %s', 'tie' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php tie_thumb(); ?><span class="overlay-icon"></span></a>
</div><!-- post-thumbnail /-->
<?php endif; ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3>
<?php tie_get_score(); ?> <span class="date"><?php the_time('d F Y'); ?></span>
</li>
<?php endwhile;
$post = $orig_post;
}

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

گزینه ها در ابزارک هم به این شرح می باشند


<p>
<label for="<?php echo $this->get_field_id( 'posts_orderr' ); ?>">نوع زمان : </label>
<select id="<?php echo $this->get_field_id( 'posts_orderr' ); ?>" name="<?php echo $this->get_field_name( 'posts_orderr' ); ?>" >
<option value="latestt" <?php if( $instance['posts_orderr'] == 'latestt' ) echo "selected=\"selected\""; else echo ""; ?>>ماه </option>
<option value="randomm" <?php if( $instance['posts_orderr'] == 'randomm' ) echo "selected=\"selected\""; else echo ""; ?>>هفته</option>
<option value="popularr" <?php if( $instance['posts_orderr'] == 'popularr' ) echo "selected=\"selected\""; else echo ""; ?>>24 ساعت</option>
<option value="bestt" <?php if( $instance['posts_orderr'] == 'bestt' ) echo "selected=\"selected\""; else echo ""; ?>>همه زمان ها</option>
</select>
</p>

الان ابزارک من در مدیریت به این شکل هست فقط شرطش مونده ممنون میشم اساتید کمک کنن خیلی زحمت کشیدم تا اینو به این صورت در اوردم فقط مرحله اخر مونده . در اینجا هم مشخص میشه که دسته رو انتخاب کنیم هم مشخص میشه در چه زمانی باشه هم مشخص میکنه تصویر شاخص گذاشته بشه یا نه

post-3832-0-63276800-1391851305_thumb.pn

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


لینک به پست

اول کد صفحه تنظیماتتون رو با مقادیر مرتبط اصلاح کنید


<label for="<?php echo $this->get_field_id( 'posts_orderr' ); ?>">نوع زمان : </label>
<select id="<?php echo $this->get_field_id( 'posts_orderr' ); ?>" name="<?php echo $this->get_field_name( 'posts_orderr' ); ?>" >
<option value="mounth" <?php if( $instance['posts_orderr'] == 'mounth' ) echo "selected=\"selected\""; else echo ""; ?>>ماه </option>
<option value="week" <?php if( $instance['posts_orderr'] == 'week' ) echo "selected=\"selected\""; else echo ""; ?>>هفته</option>
<option value="day" <?php if( $instance['posts_orderr'] == 'day' ) echo "selected=\"selected\""; else echo ""; ?>>24 ساعت</option>
<option value="all" <?php if( $instance['posts_orderr'] == 'all' ) echo "selected=\"selected\""; else echo ""; ?>>همه زمان ها</option>
</select>

و بعد شرط بگذارید


<?php
$posts_orderr =get_option('posts_orderr');
if($posts_orderr == 'mounth') {
//کدهای کوئری ماهیانه
}
elseif($posts_orderr == 'week') {
// کدهای کوئری هفتگی
}
?>

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

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


لینک به پست

این کد مگر محدوده زمانی امروز( یا 24 ساعت ) نیست؟ :


'date_query' => array(
array(
'year' => $today["year"],
'month' => $today["mon"],
'day' => $today["mday"],
),
),

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


function tie_last_posts_cattb($numberOfPosts = 5 , $thumb = true , $cats = 1){
//add_filter( 'posts_where', 'filter_where_today' );
$today = getdate();
<?php
$posts_orderr =get_option('posts_orderr');
if($posts_orderr == 'day') {
$args=array(
'date_query' => array(
array(
'year' => $today["year"],
'month' => $today["mon"],
'day' => $today["mday"],
),
),
}
?>
'cat'=>$cats,
'posts_per_page'=>$numberOfPosts,
'orderby'=>'comment_count',
'order'=>'DESC'
);
$lastPosts =new WP_Query($args);
//remove_filter( 'posts_where', 'filter_where_today' );
while($lastPosts->have_posts()):$lastPosts->the_post(); ?>
<li <?php tie_post_class(); ?>>
<?php if ( function_exists("has_post_thumbnail") && has_post_thumbnail() && $thumb ) : ?>
<div class="post-thumbnail">
<a href="<?php the_permalink(); ?>" title="<?php printf( __( 'Permalink to %s', 'tie' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php tie_thumb(); ?><span class="overlay-icon"></span></a>
</div><!-- post-thumbnail /-->
<?php endif; ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3>
<?php tie_get_score(); ?> <span class="date"><?php the_time('d F Y'); ?></span>
</li>
<?php endwhile;
$post = $orig_post;
}

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


لینک به پست

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


<?php
function tie_last_posts_cattb($numberOfPosts = 5 , $thumb = true , $cats = 1){
//add_filter( 'posts_where', 'filter_where_today' );
$today = getdate();
$posts_orderr =get_option('posts_orderr');
$day=array(
'date_query' => array(
array(
'year' => $today["year"],
'month' => $today["mon"],
'day' => $today["mday"],
),
),
'cat'=>$cats,
'posts_per_page'=>$numberOfPosts,
'orderby'=>'comment_count',
'order'=>'DESC'
);
$month=array(
'date_query' => array(
array(
'year' => $today["year"],
'month' => $today["mon"],
),
),
'cat'=>$cats,
'posts_per_page'=>$numberOfPosts,
'orderby'=>'comment_count',
'order'=>'DESC'
);
if($posts_orderr == 'month') {
$lastPosts =new WP_Query($month);
}
else {
$lastPosts =new WP_Query($day);
}
//remove_filter( 'posts_where', 'filter_where_today' );
while($lastPosts->have_posts()):$lastPosts->the_post(); ?>
<li <?php tie_post_class(); ?>>
<?php if ( function_exists("has_post_thumbnail") && has_post_thumbnail() && $thumb ) : ?>
<div class="post-thumbnail">
<a href="<?php the_permalink(); ?>" title="<?php printf( __( 'Permalink to %s', 'tie' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php tie_thumb(); ?><span class="overlay-icon"></span></a>
</div><!-- post-thumbnail /-->
<?php endif; ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3>
<?php tie_get_score(); ?> <span class="date"><?php the_time('d F Y'); ?></span>
</li>
<?php endwhile;
$post = $orig_post;
} ?>

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


لینک به پست

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

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

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


لینک به پست

توی کد فرم من اشتباهی month را mount نوشتم اصلاحش کنید درست می شه


<option value="month" <?php if( $instance['posts_orderr'] == 'month' ) echo "selected=\"selected\""; else echo ""; ?>>ماه </option>

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


لینک به پست

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

در کل من این کد را توصیه نمی کنم در نهایت هم که ارابشه کوئری خیلی سنگینی می سازه که قابل استفاده نخواهد بود بهتره این آموزش را مرور کنید

http://forum.wp-parsi.com/tutorials/article/138-%D9%BE%D8%B1%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D8%AA%D8%B1%DB%8C%D9%86-%D9%85%D8%B7%D8%A7%D9%84%D8%A8/

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


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری