m4xs051

راهنمایی در خصوص ایجاد وب سرویس

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

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

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

خب. اگه سیستم رو تغییر داد مشکل api واسه اندروید اوکی میشه؟ و مشکلی دیگه نداریم؟ به چه صورت میشه کدش اگه میشه راهنمایی کنید.

خدا خیرت بده 

1

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


لینک به پست
در 29 دقیقه قبل، m4xs051 گفته است :

خب. اگه سیستم رو تغییر داد مشکل api واسه اندروید اوکی میشه؟ و مشکلی دیگه نداریم؟ به چه صورت میشه کدش اگه میشه راهنمایی کنید.

خدا خیرت بده 

یه همچین چیزی میشه کدش:

add_action('wp_ajax_mehran_adv_search', 'mehran_adv_search');
add_action('wp_ajax_nopriv_mehran_adv_search', 'mehran_adv_search');
function mehran_adv_search() {
	
	$name = $_REQUEST['name'];
	$surname = $_REQUEST['surname'];
	$city = $_REQUEST['city'];
	$page = (isset($_REQUEST['page'])) ? intval($_REQUEST['page']) : 1;
	
	if(empty($name) || empty($surname) || empty($city))
		wp_send_json_error();
	
	$args = array(
		'posts_per_page' => 10,
		'paged' => $page,
		'meta_query' => array(
			'relation' => 'AND',
			array(
				'key' => 'name',
				'value' => $name,
				'compare' => 'LIKE'
			),
			array(
				'key' => 'surname',
				'value' => $surname,
				'compare' => 'LIKE'
			),
			array(
				'key' => 'city',
				'value' => $city,
				'compare' => 'LIKE'
			),
		),
		'ignore_sticky_posts' => 1
	);
	
	$query = new WP_Query($args);
	
	if($query->have_posts()) :
		$i = 0;
		while($query->have_posts()) :
			$query->the_post();
			
			$data[$i]['title'] = $query->post->post_title;
		
		$i++;
		endwhile;
		wp_reset_postdata();
		
		wp_send_json_success($data);
		
	else :
	
		wp_send_json_error();
	
	endif;
	
}

شیوه استفاده هم میشه:

http://domain.com/wp-admin/admin-ajax.php?action=mehran_adv_search&name=نام&surname=نام خانوادگی&city=نام شهر&page=چندین  صفحه نتایج را نمایش بدهد

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

2

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


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

یه همچین چیزی میشه کدش:


add_action('wp_ajax_mehran_adv_search', 'mehran_adv_search');
add_action('wp_ajax_nopriv_mehran_adv_search', 'mehran_adv_search');
function mehran_adv_search() {
	
	$name = $_REQUEST['name'];
	$surname = $_REQUEST['surname'];
	$city = $_REQUEST['city'];
	$page = (isset($_REQUEST['page'])) ? intval($_REQUEST['page']) : 1;
	
	if(empty($name) || empty($surname) || empty($city))
		wp_send_json_error();
	
	$args = array(
		'posts_per_page' => 10,
		'paged' => $page,
		'meta_query' => array(
			'relation' => 'AND',
			array(
				'key' => 'name',
				'value' => $name,
				'compare' => 'LIKE'
			),
			array(
				'key' => 'surname',
				'value' => $surname,
				'compare' => 'LIKE'
			),
			array(
				'key' => 'city',
				'value' => $city,
				'compare' => 'LIKE'
			),
		),
		'ignore_sticky_posts' => 1
	);
	
	$query = new WP_Query($args);
	
	if($query->have_posts()) :
		$i = 0;
		while($query->have_posts()) :
			$query->the_post();
			
			$data[$i]['title'] = $query->post->post_title;
		
		$i++;
		endwhile;
		wp_reset_postdata();
		
		wp_send_json_success($data);
		
	else :
	
		wp_send_json_error();
	
	endif;
	
}

شیوه استفاده هم میشه:


http://domain.com/wp-admin/admin-ajax.php?action=mehran_adv_search&name=نام&surname=نام خانوادگی&city=نام شهر&page=چندین  صفحه نتایج را نمایش بدهد

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

دستت درد نکنه آقا مهران چک میکنم و اگه مشلی بود همینجا میگم.

فقط یه سوال: تو این url که برای استفاده هست شما اول که اسم فانکشن خودتون رو اوردید درسته؟ و بعد به ترتیب اسم کاستوم فیلدها درسته؟ 

فقط گزینه آخرش که مربوط به page هست رو همینجوری باید وارد کنم؟ 

کد اصلی که فانکشن هست اون هم باید سفازشی سازی بشه؟ یا همین url رو با توجه به نیاز خودم تغییر بدم اوکی میشه؟

:)

 

1

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


لینک به پست

کد اصلی که فانکشن هست اون هم باید سفازشی سازی بشه؟ 

===> این مورد رو دوباره کد رو بررسی کردم دیدم اسم کاستوم فیلد هاظاهرا فقط باید ریپلیس بشه درسته؟

1

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


لینک به پست
نقل قول

تو این url که برای استفاده هست شما اول که اسم فانکشن خودتون رو اوردید درسته؟

بله اول اسم فانکشن رو آوردم ولی میتونم آخر اسم فانکشن رو بیارم ترتیب اهمیت نداره اینجا.

نقل قول

و بعد به ترتیب اسم کاستوم فیلدها درسته؟

بله بعد از اسم فانکشن پارامترهای سرچ که همون کاستوم فیلدها هستند رو آوردم البته بازم اشاره میکنم ترتیب اهمیتی نداره.

مثلا اینم درسته:

http://domain.com/wp-admin/admin-ajax.php?surname=نام خانوادگی&name=نام&city=نام شهر&page=چندین  صفحه نتایج را نمایش بدهد&action=mehran_adv_search
نقل قول

فقط گزینه آخرش که مربوط به page هست رو همینجوری باید وارد کنم؟

این آپشن وقتی کاربرد داره که مثلا تعداد نتایج حاصل از جستجو بیش از 10 نتیجه باشه در اینصورت برای دریافت 11 امین نتیجه از Api باید page رو 2 وارد کرد البته اگر کلا پارامتر page ارسال نشه 1 در نظر گرفته میشه.

نقل قول

کد اصلی که فانکشن هست اون هم باید سفازشی سازی بشه؟ یا همین url رو با توجه به نیاز خودم تغییر بدم اوکی میشه؟

اسم کاستوم فیلد هاظاهرا فقط باید ریپلیس بشه درسته؟

خوب باید تغییرات بدید وابسته به امکاناتی که اپلیکیشن داره.

مثلا الان تابعی که من براتون فرستادم فقط عنوان پست رو ارسال میکنه ولی شاید شما متن پست ، عکس پست ، تاریخ پست و ... هم بخواید توی اپلیکیشن نشون بدید که در اینصورت باید توی حلقه wp_query این فاکتور ها هم بگیرید و توی آرایه data سیو کنید.

2

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


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

مثلا الان تابعی که من براتون فرستادم فقط عنوان پست رو ارسال میکنه ولی شاید شما متن پست ، عکس پست ، تاریخ پست و ... هم بخواید توی اپلیکیشن نشون بدید که در اینصورت باید توی حلقه wp_query این فاکتور ها هم بگیرید و توی آرایه data سیو کنید.

===> تو سایت داره وقتی کاربر سرچی انجام میشه اطلاعاتی که نشون داده میشه شامل عنوان - تصویر شاخص و دکمه ادامه مطلب هست. همین پارامتر ها هم دقیق باید تو اپلیکیشن باشه و فرقی نداره.

 

ویرایش شده در توسط m4xs051
1

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


لینک به پست
add_action('wp_ajax_mehran_adv_search', 'mehran_adv_search');
add_action('wp_ajax_nopriv_mehran_adv_search', 'mehran_adv_search');
function mehran_adv_search() {
	
	$name = $_REQUEST['name'];
	$surname = $_REQUEST['surname'];
	$city = $_REQUEST['city'];
	$page = (isset($_REQUEST['page'])) ? intval($_REQUEST['page']) : 1;
	
	if(empty($name) || empty($surname) || empty($city))
		wp_send_json_error();
	
	$args = array(
		'posts_per_page' => 10,
		'paged' => $page,
		'meta_query' => array(
			'relation' => 'AND',
			array(
				'key' => 'name',
				'value' => $name,
				'compare' => 'LIKE'
			),
			array(
				'key' => 'surname',
				'value' => $surname,
				'compare' => 'LIKE'
			),
			array(
				'key' => 'city',
				'value' => $city,
				'compare' => 'LIKE'
			),
		),
		'ignore_sticky_posts' => 1
	);
	
	$query = new WP_Query($args);
	
	if($query->have_posts()) :
		$i = 0;
		while($query->have_posts()) :
			$query->the_post();
			
			$data[$i]['id'] = $query->post->ID;
			$data[$i]['title'] = $query->post->post_title;
			$data[$i]['image'] = get_the_post_thumbnail_url($query->post->ID);
		
		$i++;
		endwhile;
		wp_reset_postdata();
		
		wp_send_json_success($data);
		
	else :
	
		wp_send_json_error();
	
	endif;
	
}

خوب توی کد بالا آدرس عکس نوشته ها و آیدی پستشون هم ارسال میشه که اگر برنامه نویس اپلیکیشن خوسات بره به ادامه مطلب با استفاده از آیدی پست ادامه مطلب رو از Api اصلی وردپرس بگیره.

2

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


لینک به پست
در در 9/11/2017 at 21:57، mehran-b گفته است :

خوب توی کد بالا آدرس عکس نوشته ها و آیدی پستشون هم ارسال میشه که اگر برنامه نویس اپلیکیشن خوسات بره به ادامه مطلب با استفاده از آیدی پست ادامه مطلب رو از Api اصلی وردپرس بگیره.

===> آقا مهران نتیجه این رو برمیگردونه:

 

59bba30dcf196_ScreenShot2017-09-15at14_25_35.png.d355b5783c336d6e2abf5fb965aad228.png

 

یعنی یه جای اشتباه شده؟

1

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


لینک به پست

سلام

 

پارامترهای name و surname و city رو وارد کردید و ارور برمیگردونه؟

1

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


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

سلام

 

پارامترهای name و surname و city رو وارد کردید و ارور برمیگردونه؟

اره دقیقا مثل فرمتی که خودتون دادید استفاده میکنم:
 

http://domain.com/wp-admin/admin-ajax.php?surname=نام خانوادگی&name=نام&city=نام شهر&page=چندین  صفحه نتایج را نمایش بدهد&action=mehran_adv_search

 

با این تفاوت که اسم سه کاستوم فیلد رو تغییر دادم و اونی که تو سایت ثبت شده رو زدم به جای name , surname , city 

یه سوال: عبارت جلوی هر کاستوم فیلد رو هم باید نوشت؟ مثلا: name= نام یا surname=نام خانوادگی ؟؟؟

ویرایش شده در توسط m4xs051
0

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


لینک به پست
نقل قول

یه سوال: عبارت جلوی هر کاستوم فیلد رو هم باید نوشت؟ مثلا: name= نام یا surname=نام خانوادگی ؟؟؟

متوجه سوالتون نشدم.

0

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


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

متوجه سوالتون نشدم.

مثلا من میخوام الان از این وب سرویس استفاده کنم. لینک رو منظورم هست که باید برای هر اسم کاستوم فیلدی که میزنم تو url مقداری هم براش ست کنم؟

مثلا: name=نام یا  city=شهر 

یا میتونه خالی هم ارسال بشه اینجوری:

http://domain.com/wp-admin/admin-ajax.php?surname=&name=&city=&page=&action=mehran_adv_search

 

خوب توضیح دادم؟ متوجه شدی آقا مهران؟

0

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


لینک به پست
نقل قول

خوب توضیح دادم؟ متوجه شدی آقا مهران؟

بله خوب توضیح دادید.

هر کدوم از سه مقدار name یا surname یا city خالی باشه ارور برمیگردونه.

1

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


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

بله خوب توضیح دادید.

هر کدوم از سه مقدار name یا surname یا city خالی باشه ارور برمیگردونه.

باز هم درست نشد.

کارهایی که من کردم اینه:

تو فانکشن کاستوم فیلد ها رو تغییر دادم. 

تو url هم name هر select option رو وارد کردم ولی باز هم اررور میده.

یه دفعه دیگه هم تو url مستقیما نام کاستوم فیلدهایی که تعریف شده بود رو زدم ولی باز هم اررور داد.

حالا باید چیکار کنم :(

0

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


لینک به پست
در 1 دقیقه قبل، m4xs051 گفته است :

باز هم درست نشد.

کارهایی که من کردم اینه:

تو فانکشن کاستوم فیلد ها رو تغییر دادم. 

تو url هم name هر select option رو وارد کردم ولی باز هم اررور میده.

یه دفعه دیگه هم تو url مستقیما نام کاستوم فیلدهایی که تعریف شده بود رو زدم ولی باز هم اررور داد.

حالا باید چیکار کنم :(

عجیبه نباید مشکلی باشه.

نمیدونم مشکل کار کجاست.

0

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


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

عجیبه نباید مشکلی باشه.

نمیدونم مشکل کار کجاست.

یعنی نمیشه آقا مهران هیچ کاری کرد؟

کارهایی که من انجام داده بودم درست بوده؟ کار دیگه هم بوده که باید انجام میشده؟

0

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


لینک به پست
در 2 دقیقه قبل، m4xs051 گفته است :

یعنی نمیشه آقا مهران هیچ کاری کرد؟

چرا کار که نشد نداره.

نقل قول

کارهایی که من انجام داده بودم درست بوده؟ کار دیگه هم بوده که باید انجام میشده؟

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

0

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


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

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

 

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

ولی شاید مشکل از یه جا دیگه کد باید باشه.

0

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


لینک به پست
نقل قول

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

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

نقل قول

ولی شاید مشکل از یه جا دیگه کد باید باشه.

اگر 3 پارامتر اصلی رو وارد میکنید و ارور میفرسته یعنی هیچ پستی پیدا نمیکنه با اون مشخصات که بهش دادید.

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

1

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


لینک به پست
در در 9/16/2017 at 12:57، mehran-b گفته است :

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

اگر 3 پارامتر اصلی رو وارد میکنید و ارور میفرسته یعنی هیچ پستی پیدا نمیکنه با اون مشخصات که بهش دادید.

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

این مقادیری که با رنگ دیگه مشخصشون میکنم تو کد زیر رو شما چطوری  مشخص کردین؟

منم باید از همین مقادیر استفاده کنم؟ 

اگه بخوام تغییرشون بدم چطوری هست من باید چه مقداری رو جایگزین کنم؟

admin-ajax.php?surname=نام خانوادگی&name=نام&city=نام شهر&page=چندین صفحه نتایج را نمایش بدهد&action=mehran_adv_search

0

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


لینک به پست

سلام

 

از طریق تلگرام در ارتباط باشید.

0

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


لینک به پست

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

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

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

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


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

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

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


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