وردپرس

ساخت جستجوگر وردپرس با تفکیک دسته و زیر دسته – برنامه نویسی داینامیک


در 7 ساعت قبل، maraljoon گفته است :

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


<select name="filter_design">
	<?php
		$category_options = array(
			'0' => 'همه دسته ها'
		);
		$cats = wp_list_pluck(get_terms(array( 
			'taxonomy' => 'type_job',
			'hide_empty' => false
		)), 'name', 'term_id');
		$category_options = $category_options + $cats;
		?>
		<option selected disabled hidden>انتخاب دسته بندی</option>
		<?php
		foreach($category_options as $value => $label) {
			echo '<option '.selected($_GET['filter_design'], $value).' value="' . esc_attr($value) . '">' . esc_html($label) . '</option>';
		}
	?>   

 

سلام. باید برای باکس اول چک کنید که والد داره یا نه:

<select name="filter_design">
	<?php
		$args = array(
			'orderby' 	=> 'name',
			'order' 	=> 'ASC',
			'parent' 	=> 0,
		);

		$cats = get_categories( $args );
		?>

		<option value="0">انتخاب دسته بندی</option>
		<?php
		foreach( $cats as $cat ) {
			sprintf( '<option value="%s">%s</option>', $cat->term_id, $cat->name );
		}
	?>
</select>

حالا دو حالت دارید برای نمایش فرزندها:

1- کل زیر دسته ها فارغ از اینکه چند سطح باشن رو لیست کنید:

<?php
$args = array(
	'child_of' => 5 // آیدی دسته والد
);

$cats = get_categories( $args );
?>
<option value="0">انتخاب دسته بندی</option>
<?php
foreach( $cats as $cat ) {
	sprintf( '<option value="%s">%s</option>', $cat->term_id, $cat->name );
}
?>

 

2- فقط زیر دسته های سطح اول رو بگیرید:

<?php
$args = array(
	'parent' => 5 // آیدی دسته والد
);

$cats = get_categories( $args );
?>

	<option value="0">انتخاب دسته بندی</option>
	<?php
	foreach( $cats as $cat ) {
		sprintf( '<option value="%s">%s</option>', $cat->term_id, $cat->name );
	}
?>

دیگه بخش ایجکس رو خودتون زحمتش رو بکشید :)

فقط توجه داشته باشید که تابع sprintf رو داخل ایجکس استفاده نکنید.



منبع: وردپرس

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوزده − 13 =

همچنین ببینید
بستن
دکمه بازگشت به بالا
WhatsApp chat