mehrdadj 1 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 باسلام دوستان من می خوام وقتی به ادامه مطلب یک دسته حالا زیر دسته باشه یا مادر میرم جدیدترین مطالب همون دسته برام نمایش داده بشه حالا تا اینجا اوکی هست: <?php $wp= new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => wp_get_post_categories( $post->ID ), 'order' => 'DESC', 'orderby' => 'id', 'posts_per_page' =>'1', 'showposts' => '1', )); ?> <li>مطلب</li> <?php endwhile;endif ;wp_reset_query();?> من از Id دسته خودمو با : 'category__in' => wp_get_post_categories( $post->ID ), می گیرم. و مطالب نشون داده میشن، حالا می خوام دسته مادر لینک کنم، یعنی به عبارتی یه دکمه باشه "مشاهده آرشیو" وقتی کاربر کلیک کرد بره دسته اصلی همون مطلب. الان من با : <?php echo get_category_link(); ?> لینک میدم ولی لینک میشه به خود مطلب که همون ادامه مطلب من هست. ممنون میشم کمکم کنید این کد تکمیل کنم. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 سلام <?php $wp= new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => wp_get_post_categories( $post->ID ), 'order' => 'DESC', 'orderby' => 'id', 'posts_per_page' =>'1', 'showposts' => '1', )); ?> <li>مطلب</li> <?php endwhile;endif ;wp_reset_query();?> از کد بالا برای ساخت حلقه category.php استفاده میکنید؟ 1 نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 سلام ممنون از پاسخ شما من ادامه مطلب یا همون single.php که هست می خوام وقتی کاربری وارد ادامه مطلب دسته ای شد آخرین مطالب همون دسته بالا نشون داده بشه یعنی قبل حلقه پست، <?php $wp= new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => wp_get_post_categories( $post->ID ), 'order' => 'DESC', 'orderby' => 'id', 'posts_per_page' =>'5', 'showposts' => '5', )); ?> <li>مطلب</li> <?php endwhile;endif ;wp_reset_query();?> <a href="<?php echo get_category_link(); ?>">مشاهده همه</a> من از این کد استفاده می کنم برای نمایش توی single.php نشون هم میده یعنی بالا اخرین مطالب دسته همون مطلب نشون میده پائین هم که خود مطلب هست بدون مشکل، فقط مشکل اینجاست نمی تونم توی حلقه اول به دسته مادر لینک بدم یعنی کاربر 5 تا اخرین مطلب دسته ای که توی ادامه مطلبش هست می بینه یه دکمه باشه که بره به category.php همون دسته که اخرین هاشو نشون میده. الان مشکل فقط لینک به این کد هست: <a href="<?php echo get_category_link(); ?>">مشاهده همه</a> لینک کردم ولی لینک خود مطلب می گیره یعنی مطلبی که داخلش هستم. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 شما اون حلقه ای که واسه آخرین مطالب دسته زدید توی single.php رو توی حلقه اصلی single.php گذاشتید یا نه خارج از حلقه single.php هست؟ نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 توی یک فایل هستن ولی خارج حلقه ادامه مطلب هست، در واقع من الان دوتا حلقه دارم. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 (ویرایش شده) در 10 دقیقه قبل، mehrdadj گفته است : توی یک فایل هستن ولی خارج حلقه ادامه مطلب هست، در واقع من الان دوتا حلقه دارم. خوب پس اگر خارج از حلقه اصلی single.php هست متغییر سراسری $post اصلا اینجا تعریف نشده که شما به عنوان خوارک دادید به تابع wp_get_post_categories. حلقه مورد نظر به این شکل باید باشه: <?php $wp = new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => wp_get_post_categories(get_queried_object_id()), 'posts_per_page' => 5 )); if($wp->have_posts()) : while($wp->have_posts()) : $wp->the_post(); ?> <li>مطلب</li> <?php endwhile; wp_reset_postdata(); endif; ?> خوب حالا میرسیم به این کد <a href="<?php echo get_category_link(); ?>">مشاهده همه</a> اگر مطلب چند تا دسته داشت به کدوم دسته باید لینک بده؟ ویرایش شده شهریور 96 توسط mehran-b 1 نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 بی نهایت ممنون دوست عزیز من. دسته مادر باید لینک بشه نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 در 8 دقیقه قبل، mehrdadj گفته است : بی نهایت ممنون دوست عزیز من. دسته مادر باید لینک بشه خوب برای پیدا کردن دسته مادر این کد رو به فایل functions.php قالبتون زیر اولین <?php اضافه میکنید. function mehran_parent_category_link($post_id) { $cats = get_the_category($post_id); foreach($cats as $cat) { if($cat->parent === 0) $parent_ids[] = $cat->term_id; } $parent = max($parent_ids); return esc_url(get_category_link($parent)); } سپس اونجایی که میخواید لینک دسته مادر رو بگیرید اگر توی حلقه اصلی single.php بود از این کد <a href="<?php echo mehran_parent_category_link($post->ID); ?>">مشاهده همه</a> و اگر هم خارج از حلقه اصلی single.php بود از این کد <a href="<?php echo mehran_parent_category_link(get_queried_object_id()); ?>">مشاهده همه</a> دریافت میکنید. موفق باشید 1 نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 دوست عزیز من خیلی خیلی ممنونم از شما لطف شما فراموش نخواهد شد. 1 نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 در هم اکنون، mehrdadj گفته است : دوست عزیز من خیلی خیلی ممنونم از شما لطف شما فراموش نخواهد شد. خواهش میکنم. پاینده باشید 1 نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 سلام آقا مهران عزیز من یه مشکل دیگه ای هم دارم می خوام دسته مادر و زیر دسته ها توی باکس هایی مثل کد بالا باشه یعنی به دسته مادر که رفتیم زیر دسته ها و مادر هر کدوم توی باکس هایی باشه که بشه اخرین مطالبشو نشون داد. در واقع می خوام این کد به صورت حلقه در بیاد و دسته مادر هر چند تا دسته داشت به صورت کدی که شما دادین عمل کنه و لوپ بشه: <?php $wp = new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => wp_get_post_categories(get_queried_object_id()), 'posts_per_page' => 5 )); if($wp->have_posts()) : while($wp->have_posts()) : $wp->the_post(); ?> <li>مطلب</li> <?php endwhile; wp_reset_postdata(); endif; ?> در واقع می خوام وقتی به دسته مادر رفتم هر چند تا زیر دسته داشته باشه به صورت کد شما در باکس های جداگانه آخرین مطلب نمایش داده بشه، آیا امکانش هست؟ نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 بله چرا که نشه حتما میشه. برای اینکار در اصل باید لوپ تو لوپ کنید. <?php $childs = get_term_children(get_queried_object_id(), 'category'); foreach($childs as $child) : $wp = new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => $child->term_id, 'posts_per_page' => 5 )); if($wp->have_posts()) : while($wp->have_posts()) : $wp->the_post(); ?> <li>مطلب</li> <?php endwhile; wp_reset_postdata(); endif; endforeach; ?> کد بالا رو تست کنید ببینید جواب میگیرید یا خیر. 1 نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 نه متاسفانه این جواب نداد توی لود موند و کوئری اجرا نشد. اقای مهران عزیز من برای هر دسته مادر یه قالب درست کردم یعنی ای دی هارو به صورت دستی میزنم، ولی دسته مادر با کدی که دیشب بهم دادین میره به آرشیو مطالب کامل ولی زیر دسته لینک نمیشه. دسته مادر من id 2 داره و یه category-2.php ساختم، الان دوتا کوئری دارم اولی دسته مادر هست دومی زیر دسته مادر که id 1262 داره حالا دسته اول بدون مشکل لینک میشه به ارشیو کامل نوشته ها ولی زیر دسته لینک نمیشه! <?php $wp = new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'cat' => 2 , 'posts_per_page' => 5 )); if($wp->have_posts()) : while($wp->have_posts()) : $wp->the_post(); ?> <li>مطلب</li> <?php endwhile; wp_reset_postdata(); endif; ?> <a href="<?php echo mehran_parent_category_link($post->ID); ?>">مشاهده همه</a> <?php $wp = new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'cat' => 1262 , 'posts_per_page' => 5 )); if($wp->have_posts()) : while($wp->have_posts()) : $wp->the_post(); ?> <li>مطلب</li> <?php endwhile; wp_reset_postdata(); endif; ?> <a href="<?php echo mehran_parent_category_link($post->ID); ?>">مشاهده همه</a> و یک سئوال من چجوری می تونم این کوئری رو یک بار بنویسم و برای چندین باکس در یک صفحه استفاده کنم؟ چون توی یک دسته مادر کم کم 10 تا زیر دسته هست باید برای همه زیر دسته ها همین کد تکرار کنم و فقط ایدی رو عوض کنم. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 (ویرایش شده) نقل قول نه متاسفانه این جواب نداد توی لود موند و کوئری اجرا نشد. حالا باید فکر بشه روی کده تا ببینیم مشکلش چیه. در مورد اون کوئری ها شما قرار بود کوئری ها رو توی single.php استفاده کنی الان داری توی category.php استفاده میکنی؟ نقل قول و یک سئوال من چجوری می تونم این کوئری رو یک بار بنویسم و برای چندین باکس در یک صفحه استفاده کنم؟ کوئری رو بذار توی یه تابع به آرگومان تابع هم آیدی دسته رو ارسال کن. function mehran_cat_query($cat_id) { $wp = new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'cat' => $cat_id, 'posts_per_page' => 5 )); if($wp->have_posts()) : while($wp->have_posts()) : $wp->the_post(); ?> <li>مطلب</li> <?php endwhile; wp_reset_postdata(); endif; } کد بالا رو میذاری توی functions.php بعد هر جا خواستی حلقه رو نمایش بدی آیدی دسته رو میفرستی به حلقه و حلقه برات نمایش داده میشه: <?php mehran_cat_query(2); ?> مثلا توی مثال بالا مطالب دسته ای که آیدی 2 هست رو نشون میده. ویرایش شده شهریور 96 توسط mehran-b 1 نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 در 2 دقیقه قبل، mehran-b گفته است : در مورد اون کوئری ها شما قرار بود کوئری ها رو توی single.php استفاده کنی الان داری توی category.php استفاده میکنی؟ اره اولی جواب داد دومی نداد. در 3 دقیقه قبل، mehran-b گفته است : کوئری رو بذار توی یه تابع به آرگومان تابع هم آیدی دسته رو ارسال کن. عالیه!!!!! دستت درد نکنه نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 نقل قول اره اولی جواب داد دومی نداد. دومی توی category.php اینطوری میشه: <a href="<?php echo esc_url(get_category_link(get_queried_object_id())); ?>">مشاهده همه</a> ولی توی single.php لینک دسته فرزند حالت داره اگر یه فرزند داشته باشی میشه لینکش رو گرفت اگر دو فرزند باشه شرایط سخت میشه باید روش فکر بشه. 2 نقل قول لینک به ارسال
mehrdadj 1 ارسال شده در شهریور 96 مالک گزارش بازنشر ارسال شده در شهریور 96 اقا مهران عزیز این چند روز خیلی زحمت دادم ولی می خوام سایتم به این شکل نمایش داده بشه: https://www.tasvirezendegi.com/news/ الان news دسته مادر هست میریم داخلش زیردسته ها همراه با اخرین ارسال های همون دسته نشون داده میشه خود این سایتم وردپرس هست. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 سلام خوب شما کد زیر رو تست کن ببین وضعیت چطوره؟ <?php $cat_obj = get_queried_object(); if($cat_obj->category_parent === 0) { $childs_id = get_term_children($cat_obj->cat_ID, 'category'); if($childs_id !== array()) { foreach($childs_id as $child_id) { $wp = new WP_Query(array( 'post_type' => 'post', 'post_status' => 'publish', 'category__in' => $child_id, 'posts_per_page' => 5 )); if($wp->have_posts()) : while($wp->have_posts()) : $wp->the_post(); ?> <li>مطلب</li> <?php endwhile; wp_reset_postdata(); endif; } } } ?> کد بالا واسه اینه که توی دسته مادر دسته های فرزند رو هر کدوم رو براشون یه لوپ بسازه. 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .