رفتن به مطلب

فرم جستوجو پیشرفته دسته های EDD


پست های پیشنهاد شده

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

ممنون میشم بزرگواری کنید تو این مورد راهنماییم کنید میخوام یه فرم جستوجو بزنم مثل این

فرم جستوجو

اما متاسفانه کدی که تونستم پیدا کنم فقط دسته بندی وردپرس رو نشون میده نه دسته بندی افزونه EDD رو .

این تیکه کد هست :

<form role="search" method="get" class="devmesearchbody" action="<?php echo home_url( '/' ); ?>">
	<label>
		<input type="search" class="devmesearchinput" placeholder="کلمه کلیدی را وارد کنید..." value="<?php echo esc_attr( get_search_query() ); ?>" name="s" title="<?php echo esc_attr_x( 'جستجو بین مطالب', 'label' ); ?>" />
	</label>
	<?php
		$swp_cat_dropdown_args = array(
				'show_option_all'  => __( 'همه' ),
				'name'             => 'swp_category_limiter',
			);
		wp_dropdown_categories( $swp_cat_dropdown_args );
	?>
	<input type="submit" class="devmesbutton" value="بگرد" />
</form>

فقط میخوام دسته بندی EDD رو نشون بده

خیلی ممنونم

لینک به ارسال

سلام و درود

 

<form role="search" method="get" class="devmesearchbody" action="<?php echo home_url( '/' ); ?>">
	<label>
		<input type="search" class="devmesearchinput" placeholder="کلمه کلیدی را وارد کنید..." value="<?php echo esc_attr( get_search_query() ); ?>" name="s" title="<?php echo esc_attr_x( 'جستجو بین مطالب', 'label' ); ?>" />
	</label>
<select name="filter_category">
	<?php
		$category_options = array(
			'all' => 'همه دسته ها'
		);
		$cats = wp_list_pluck(get_terms(array( 
			'taxonomy' => 'download_category'
		)), '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_category'], $value).' value="' . esc_attr($value) . '">' . esc_html($label) . '</option>';
		}
	?>   
</select>
	<input type="submit" class="devmesbutton" value="بگرد" />
</form>

 

موفق باشید

لینک به ارسال
در 12 دقیقه قبل، mehran-b گفته است :

سلام و درود

 


<form role="search" method="get" class="devmesearchbody" action="<?php echo home_url( '/' ); ?>">
	<label>
		<input type="search" class="devmesearchinput" placeholder="کلمه کلیدی را وارد کنید..." value="<?php echo esc_attr( get_search_query() ); ?>" name="s" title="<?php echo esc_attr_x( 'جستجو بین مطالب', 'label' ); ?>" />
	</label>
<select name="filter_category">
	<?php
		$category_options = array(
			'all' => 'همه دسته ها'
		);
		$cats = wp_list_pluck(get_terms(array( 
			'taxonomy' => 'download_category'
		)), '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_category'], $value).' value="' . esc_attr($value) . '">' . esc_html($label) . '</option>';
		}
	?>   
</select>
	<input type="submit" class="devmesbutton" value="بگرد" />
</form>

 

موفق باشید

خیلی ممنونم از راهنماییتون . متاسفانه وقتی دکمه بگرد رو میزنم مطالب دسته مورد نظر نمایش داده نمیشه http://toranjgraph.ir/

لینک به ارسال

درود مجدد

 

بله صرفا با ساخت فرم وردپرس منظور شما رو متوجه نمیشه و باید شما اطلاعات ورودی فرم رو در بک اند پردازش کنید و سپس حلقه مورد نظر رو با استفاده از نتایج بهش کوئری بدید.

در تاپیک زیر توضیحاتی دادم.

 

موفق باشید

لینک به ارسال
در 13 دقیقه قبل، mehran-b گفته است :

درود مجدد

 

بله صرفا با ساخت فرم وردپرس منظور شما رو متوجه نمیشه و باید شما اطلاعات ورودی فرم رو در بک اند پردازش کنید و سپس حلقه مورد نظر رو با استفاده از نتایج بهش کوئری بدید.

در تاپیک زیر توضیحاتی دادم.

 

موفق باشید

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

خیلی ممنونم و تشکر میکنم .

لینک به ارسال
در 30 دقیقه قبل، pashabey گفته است :

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

تا انتهای امروز کدشو براتون میفرستم.

 

موفق باشید

لینک به ارسال
در 1 دقیقه قبل، mehran-b گفته است :

تا انتهای امروز کدشو براتون میفرستم.

 

موفق باشید

تمام من منتظر پاسخ شما هستم این آخرین مرحله از طراحی این سایت هست اگه اینم حل بشه تمومه . بازم از لطفتون ممنونم

لینک به ارسال
در 5 ساعت قبل، pashabey گفته است :

تمام من منتظر پاسخ شما هستم این آخرین مرحله از طراحی این سایت هست اگه اینم حل بشه تمومه . بازم از لطفتون ممنونم

بسیار خوب.

 

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

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

add_filter('query_vars', function($vars) {
	$vars[] = 'filter_query';
	$vars[] = 'filter_category';
	return $vars;
});

خوب مرحله بالا باعث میشه که وردپرس بتونه مقدار این دو متغییر رو دریافتش کنه که ما بتونیم توی تابع مربوط به اکشن pre_get_posts مقدارشون رو پردازش کنیم و بنابر نتیجه حاصل شده خروجی حلقه اصلی رو تغییر بدیم.

در سوال شما کد مربوط به اکشن pre_get_posts به شکل زیر میشه:

add_action('pre_get_posts', function($query) {
    if($query->is_home() && $query->is_main_query()) {
		if(get_query_var('filter_category', false)) {
			if(get_query_var('filter_category') != "all" && is_numeric(get_query_var('filter_category')))
				$query->set('cat', get_query_var('filter_category'));
		}
		if(get_query_var('filter_query', false)) {
			$query->set('s', get_query_var('filter_query'));
		}
    }
});

خوب با قرار دادن دو کد بالا در فایل functions.php قالبتون بخش بک اِند به پایان میرسه.

در بخش فرانت اِند که فرم به شکل زیر خواهد بود:

<form role="search" method="get" class="devmesearchbody" action="<?php echo home_url( '/' ); ?>">
<input type="search" class="devmesearchinput" placeholder="کلمه کلیدی را وارد کنید..." value="<?php echo get_query_var('filter_query', false) ? esc_attr(get_query_var('filter_query')) : ""; ?>" name="filter_query">
<select name="filter_category">
	<?php
		$category_options = array(
			'all' => 'همه دسته ها'
		);
		$cats = wp_list_pluck(get_terms(array( 
			'taxonomy' => 'download_category'
		)), '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_category'], $value).' value="' . esc_attr($value) . '">' . esc_html($label) . '</option>';
		}
	?>   
</select>
<input type="submit" class="devmesbutton" value="بگرد">
</form>

اینم از فرم جستجو.

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

 

موفق باشید

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...