maral_hamidi 82 ارسال شده در فروردین 97 گزارش بازنشر ارسال شده در فروردین 97 سلام اساتید و دوستان محترم.. دنبال یه حلقه و یه روش میگردم که بتونم این مورد رو انجام بدم. تا یه جاهایی پیش رفتم ولی کامل نیست. من 4 تا دسته دارم و هر کدوم از این دسته ها 1 الی 2 زیر دسته. و هر زیر دسته ممکنه چندتا پست داشته باشن. روش نمایش به این شکله که ابتدا عنوان دسته مادر میاد و زیرش عنوان زیر دسته ها. و جلوی هر زیر دسته تایتل پست های مختص اون زیردسته. در واقع با استفاده از این حلقه همه دسته ها و زیر دسته های موجود نمایش داده میشن. و این حلقه مربوط به یک پست تایپ خاص به اسم BOX هست. ممنون میشم تو ساختن این حلقه کمکم کنید. تشکر نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در فروردین 97 گزارش بازنشر ارسال شده در فروردین 97 سلام و درود به شکل لیست ul و li تونستم تقریبا چیزی رو که مدنظره بدست بیارم. ابتدا دو تا تابع زیر رو میذارید توی فایل functions.php function mehran_get_cat_post_ids($taxonomy, $post_type, $posts_per_page, $term_id) { $query = new WP_Query(array( 'post_type' => $post_type, 'posts_per_page' => $posts_per_page, 'fields' => 'ids', 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'terms' => $term_id ) ) )); return $query->posts; } function mehran_get_parent_child_post($taxonomy = 'category', $post_type = 'post', $posts_per_page = 10) { $cats = get_categories(array( 'taxonomy' => $taxonomy )); $data = array(); foreach($cats as $k => $v) { if($v->parent) $data[$v->parent][$v->term_id] = mehran_get_cat_post_ids($taxonomy, $post_type, $posts_per_page, $v->term_id); else $data[$v->term_id] = false; } return $data; } بعد مثلا جایی که میخواید باید اینجوری ازش استفاده کنید. احتیاج به 3 به صورت تو در تو هست. $data = mehran_get_parent_child_post(); echo "<ul dir='rtl'>"; foreach($data as $k => $v) { echo "<li>"; echo get_cat_name($k); if(is_array($v)) { echo "<ul>"; foreach($v as $cid => $pid) { echo "<li>"; echo get_cat_name($cid); if(is_array($pid)) { echo "<ul>"; foreach($pid as $p) { echo "<li>"; echo get_the_title($p); echo "</li>"; } echo "</ul>"; } echo "</li>"; } echo "</ul>"; } echo "</li>"; } echo "</ul>"; تابع mehran_get_parent_child_post سه تا ارگومان داره که هیچ کدومش اجباری نیست اولی تاکسونومی مورد نظر که به صورت پیشفرض category هست دومی پست ایپ مورد نظر که به صورت پیشفرض post هست سومی هم تعداد پست هایی که میخواد برای هر زیر دسته بزنه که به صورت پیشفرض 10 عدد هست. موفق باشید 1 نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در فروردین 97 مالک گزارش بازنشر ارسال شده در فروردین 97 در 1 ساعت قبل، mehran-b گفته است : ممنونم عالی بود. دقیقا همون نتیجه ای که میخواستم رو تو خروجی داشت. سپاسگزارم از اینکه وقت گذاشتید. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در فروردین 97 گزارش بازنشر ارسال شده در فروردین 97 در 3 دقیقه قبل، maraljoon گفته است : ممنونم عالی بود. دقیقا همون نتیجه ای که میخواستم رو تو خروجی داشت. خواهش میکنم در 3 دقیقه قبل، maraljoon گفته است : سپاسگزارم از اینکه وقت گذاشتید. موفق باشید نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در فروردین 97 مالک گزارش بازنشر ارسال شده در فروردین 97 در 10 ساعت قبل، mehran-b گفته است : function mehran_get_parent_child_post($taxonomy = 'category', $post_type = 'post' سلام. ببخشید. برای اینکه پست تایپ خاص رو بهش بدیم فقط باید همین خط باید ویرایش بشه؟ بخش post type? نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در فروردین 97 گزارش بازنشر ارسال شده در فروردین 97 در 4 دقیقه قبل، maraljoon گفته است : سلام. ببخشید. برای اینکه پست تایپ خاص رو بهش بدیم فقط باید همین خط باید ویرایش بشه؟ بخش post type? نه این خود تابع است اینو ویرایش نکن وقتی فراخوانیش کردی بهش یه مقدار جدید بده. $data = mehran_get_parent_child_post('category', 'test', 5); نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در فروردین 97 مالک گزارش بازنشر ارسال شده در فروردین 97 در 11 دقیقه قبل، mehran-b گفته است : نه این خود تابع است اینو ویرایش نکن وقتی فراخوانیش کردی بهش یه مقدار جدید بده. $data = mehran_get_parent_child_post('category', 'test', 5); عذر میخوام متوجه نشدم. مقدار جدید رو به چی بدم؟ مثلا پست تایپم portfolio هست. توی قالب باید فراخونی بشه؟ به چه شکل؟ کد فانکشن رو تغییر ندم؟ نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در فروردین 97 گزارش بازنشر ارسال شده در فروردین 97 در 9 دقیقه قبل، maraljoon گفته است : مقدار جدید رو به چی بدم؟ به تابعی مقدار میدن که فراخوانیش میکنند نه وقتی که میسازنش. $data = mehran_get_parent_child_post('category', 'portfolio'); // اینجا فراخوانیش کردیم توی فایل فانکشنز قالب تعریفش کردیم echo "<ul dir='rtl'>"; foreach($data as $k => $v) { echo "<li>"; echo get_cat_name($k); if(is_array($v)) { echo "<ul>"; foreach($v as $cid => $pid) { echo "<li>"; echo get_cat_name($cid); if(is_array($pid)) { echo "<ul>"; foreach($pid as $p) { echo "<li>"; echo get_the_title($p); echo "</li>"; } echo "</ul>"; } echo "</li>"; } echo "</ul>"; } echo "</li>"; } echo "</ul>"; 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .