• اطلاعیه ها

    • Saeed Fard

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

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

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

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

سلام و حسته نباشید .

من توی فایل category.php می خوام مقادیری از پست هام را فراخانی کنم که یک زمینه‌ خاص مثلا زمینه‌ دلخواه " wordpress " را داشته باشه به تعداد 10 تا فراخوانی کنم و اولین پست را نشون نده ، البته می خوام این توی شرایطی باشه که هر دسته بندی مطالب خواص خود که زمینه‌ دلخواه " wordpress " به اون مطلب قلاب شده را نشون بده .

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


<?php query_posts('meta_key=wordpress&showposts=10&offset=1'); if (have_posts()) : while (have_posts()) : the_post(); ?>
<p><?php the_excerpt(); ?></p>
<?php endwhile; endif; wp_reset_query(); ?>

مشکل این کوئری این هست که توی همه دسته ها زمینه‌ دلخواه " wordpress " را بدون در نظر گرفتن دسته ای که توش هست نمایش میده .

یعنی اگه 4 تا دسته داشته باشیم که که مطالب هر دسته متفاوت باشه هم فرقی ندارد و همه دسته ها یک سان بر اساس زمینه‌ دلخواه " wordpress " لود میشه .

اگه بخواهم به کوئری cat=namber id اضافه کنم باید برای هر دسته یک فایل category.php اضافه کنم که نمی خوام این کار را کنم .

برای همین اومدم و یک کوئری جدید گرفتم :


<?php $myquery= new WP_Query( array( 'posts_per_page' => '10' , 'meta_key' => 'wordpress', 'offset' => 1 ));
while ( $myquery->have_posts() ) : $myquery->the_post()?>
<p><?php the_excerpt(); ?></p>

<?php endwhile; wp_reset_query(); ?>

این کوئری هم دقیقا همیون مشکل را داشت .

برای همین این کوئری را نوشتم :


<?php $args = array( 'meta_key' => 'wordpress' ); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<p><?php the_excerpt(); ?></p>
<?php endwhile; endif; wp_reset_query(); ?>

اینجا مشکل نمایش دسته ها را نداره و مطالب هر دسته درست ایجاد میشه اما 2 مورد دیگه را نا دیده میگیره یعنی offset را اجرا نمی کنه و تعداد نمایش مطلب را که هم با posts_per_page و showposts قرار دادم را عمل نمی کنه و نصب به تنظیمات نمایش مطلب نمایش میده .

البته هر 2 مورد را هم مخلوط کردم ولی باز هم مشکل اول بود .

بیش از این به زهنم چیزی نرسید که چه روشی و چه کاری انجام بدم .

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

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


لینک به پست

این کوئری دسته بندی را از صفحه ی جاری می خونه


<?php
$custom_query = new WP_Query(array(
'post_status' =>'published',
'post_type' =>'post',
'meta_key' => 'wordpress',
'order' =>'DESC',
'orderby' =>'ID',
'offset' => '1',
'posts_per_page' =>'6',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($custom_query->have_posts()) :
while($custom_query->have_posts()) : $custom_query->the_post();?>

البته جاش هم مهمه باید بعد از


if(have_posts()) :

حلقه اصلی و قبل از


endif;

مربوط به همون شرط

ساخته بشه

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


لینک به پست

سلام و تشکر فراوان استاد فخار عزیز .

کوئری اینجوری شد ولی همه چیز خوبه ولی باز هم مشکل نمایش در دسته بندی ها هست .


<?php if (have_posts())
$custom_query = new WP_Query(array(
'post_status' =>'published',
'post_type' =>'post',
'meta_key' => 'wordpress',
'order' =>'DESC',
'orderby' =>'ID',
'offset' => '1',
'posts_per_page' =>'6',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($custom_query->have_posts()) :
while($custom_query->have_posts()) : $custom_query->the_post();?>
<p><?php the_excerpt(); ?></p>

<?php endwhile; else: ?><?php endif; ?>

هر چی توی codex وردپرس گشتم چیزی پیدا نکردم که برای cat قرار بدم و id همون دسته فعال را نشون بده .

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


لینک به پست

نیازی نیست

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

1. به محلی که کوئری را گذاشتید توجه کنید

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

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


لینک به پست

سلام مجدد .

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

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

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


لینک به پست

اگر کوئریتون دقیقا اینجوریه


if (have_posts())
$custom_query = new WP_Query(array(
'post_status' =>'published',
'post_type' =>'post',
'meta_key' => 'wordpress',
'order' =>'DESC',
'orderby' =>'ID',
'offset' => '1',
'posts_per_page' =>'6',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($custom_query->have_posts()) :
while($custom_query->have_posts()) : $custom_query->the_post();?>
<p><?php the_excerpt(); ?></p>

<?php endwhile; else: ?><?php endif; ?>

تبدیلش کنید به


if (have_posts()) :
$custom_query = new WP_Query(array(
'post_status' =>'published',
'post_type' =>'post',
'meta_key' => 'wordpress',
'order' =>'DESC',
'orderby' =>'ID',
'offset' => '1',
'posts_per_page' =>'6',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($custom_query->have_posts()) :
while($custom_query->have_posts()) : $custom_query->the_post();?>
<p><?php the_excerpt(); ?></p>

<?php endwhile; else: ?><?php endif; ?>

و در انتهای صفحه (نقطه قرینه if(have_post()) در صفحه ) هم


<?php endif;?>

اضافه کنید

اگر جواب نگرفتید

این روش گرفتن آی دی دسته بندی جاری است


$cats = strip_tags( get_the_category_list( ',' ) );
$cats = explode( ',', $cats );
if( !empty( $cats ) ){
$cat_ids = array();
foreach ( $cats as $cat ) {
$term_data = get_term_by( 'name', $cat, 'category' );
$cat_ids[] = $term_data->term_id;
}
}
//print_r($cat_ids);
$cats = implode( ',', $cat_ids );

و در کوئری هم بجای cat =>

بگذارید


'category__and' => $cat_id,

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


لینک به پست

سلام اقا ایمان .

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

من میخوام 6 مطلب اخری که یک زمینه دلخواهی به عنوان مثال "hot-post" رو دارند، نمایش بدم. از ژنراتور هم کوئری گرفتم و درست اجرا میشه ولی یک مشکل داره، مشکلش اینه من الان دارم از افزونه acf برای زمینه های دلخواه استفاده میکنم، یعنی این شرط بدون اینکه مقداری داشته باشه اجرا میشه !!! من میخوام جوری باشه که وقتی زمینه دلخواهی که به عنوان مثال اگر چک باکسش تیک خورد این شرط براش اجرا بشه نه فقط اینکه اگر این پست زمینه رو داشت اجرا بشه، به شرطی که زمینه مقدار داشته باشه و چک باکسش تیک خورده باشه شرط اجرا بشه.

ممنون و تشکر

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


لینک به پست

می تونی از مقدار زمینه دلخواه کوئری بگیری البته به این شرط که همیشه ثابت باشه .

یعنی مقدار زمینه "hot-post" فقط "yes" باشه و مقدار های این نباشه را نشون نمی ده .


<?php $my_query = new WP_Query('meta_key=hot-post&meta_value=yes&showposts=6'); while ($my_query->have_posts()): $my_query->the_post(); $do_not_duplicate = $post->ID;?>
محتوا
<?php endwhile; ?>

این کوئری 6 تا از اخرین مطالبی که زمینه دلخواه "hot-post" را با مقدار "yes" داشته باشه نشون میده .

سلام اقا ایمان .

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

من میخوام 6 مطلب اخری که یک زمینه دلخواهی به عنوان مثال "hot-post" رو دارند، نمایش بدم. از ژنراتور هم کوئری گرفتم و درست اجرا میشه ولی یک مشکل داره، مشکلش اینه من الان دارم از افزونه acf برای زمینه های دلخواه استفاده میکنم، یعنی این شرط بدون اینکه مقداری داشته باشه اجرا میشه !!! من میخوام جوری باشه که وقتی زمینه دلخواهی که به عنوان مثال اگر چک باکسش تیک خورد این شرط براش اجرا بشه نه فقط اینکه اگر این پست زمینه رو داشت اجرا بشه، به شرطی که زمینه مقدار داشته باشه و چک باکسش تیک خورده باشه شرط اجرا بشه.

ممنون و تشکر

سلام اقا ایمان .

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

من میخوام 6 مطلب اخری که یک زمینه دلخواهی به عنوان مثال "hot-post" رو دارند، نمایش بدم. از ژنراتور هم کوئری گرفتم و درست اجرا میشه ولی یک مشکل داره، مشکلش اینه من الان دارم از افزونه acf برای زمینه های دلخواه استفاده میکنم، یعنی این شرط بدون اینکه مقداری داشته باشه اجرا میشه !!! من میخوام جوری باشه که وقتی زمینه دلخواهی که به عنوان مثال اگر چک باکسش تیک خورد این شرط براش اجرا بشه نه فقط اینکه اگر این پست زمینه رو داشت اجرا بشه، به شرطی که زمینه مقدار داشته باشه و چک باکسش تیک خورده باشه شرط اجرا بشه.

ممنون و تشکر

می تونی از مقدار زمینه دلخواه کوئری بگیری البته به این شرط که همیشه ثابت باشه .

یعنی مقدار زمینه "hot-post" فقط "yes" باشه و مقدار های این نباشه را نشون نمی ده .


<?php $my_query = new WP_Query('meta_key=hot-post&meta_value=yes&showposts=6'); while ($my_query->have_posts()): $my_query->the_post(); $do_not_duplicate = $post->ID;?>
محتوا
<?php endwhile; ?>

این کوئری 6 تا از اخرین مطالبی که زمینه دلخواه "hot-post" را با مقدار "yes" داشته باشه نشون میده .

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


لینک به پست

اخه مشکل همینه که منم اینکارو انجام دادم ولی نشد، من با افزونه acf زمینه دلخواهی به نام پیشنهاد دانلود ساختم، و یک چکباکس براش تعریف کردم به نام yes ، و کد شما رو هم باز تست کردم ولی نشد !!!

مشکل حل شد دوست عزیز ...

با تغییر زمینه دلخواه از چک باکس به دراپ باکس، و کوئری شما مشکل حل شد.

مرسی از شما ...

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


لینک به پست

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

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

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

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


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

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

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


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