رفتن به مطلب

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


sajad

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

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

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

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

خدا خیرت بده 

لینک به ارسال
در 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=چندین  صفحه نتایج را نمایش بدهد

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

لینک به ارسال
در 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 رو با توجه به نیاز خودم تغییر بدم اوکی میشه؟

:)

 

لینک به ارسال
نقل قول

تو این 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 سیو کنید.

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

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

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

 

ویرایش شده توسط m4xs051
لینک به ارسال
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 اصلی وردپرس بگیره.

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

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

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

 

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

 

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

لینک به ارسال
در 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
لینک به ارسال
در 21 دقیقه قبل، mehran-b گفته است :

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نقل قول

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

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

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

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

 

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

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

لینک به ارسال
نقل قول

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

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

نقل قول

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

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

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

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

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

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

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

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

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

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

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

لینک به ارسال

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

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

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

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

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

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

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

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

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