رفتن به مطلب

استفاده از مسیر خاص


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

سلام

می خواهم افزونه ای بنویسم که برای وب سرویس استفاده می شود (به صورت POST). مسلما نمی تونم برای استفاده از سرویس مسیر فایل اصلی افزونه را بدم و باید از مسیر خاص و ثابتی استفاده کنم. مثلا wordpress.com/wp-my-service/

چطور می تونم از داخل افزونه از مسیر اختصاصی استفاده کنم؟

آیا میشه از برگه ها استفاده کرد؟ اگه میشه چطوری؟

چطور بدون صدا زدن فایل اصلی افزونه سرویس را صدا بزنم؟

 

لینک به ارسال

سلام و درود

 

خود وردپرس REST API داره ولی اگر هدفتون اینه که خودتون یه API اختصاصی بنویسید هم میشه از Ajax API استفاده کنید هم میشه با استفاده از query_vars و add_rewrite_rule به طور کلی یه روت برای API تون ایجاد کنید.

 

موفق باشید

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

سلام و درود

 

خود وردپرس REST API داره ولی اگر هدفتون اینه که خودتون یه API اختصاصی بنویسید هم میشه از Ajax API استفاده کنید هم میشه با استفاده از query_vars و add_rewrite_rule به طور کلی یه روت برای API تون ایجاد کنید.

 

موفق باشید

من از باینری می خواهم استفاده کنم نه از جیسون ... REST API به کارم نمی یاد

 add_rewrite_rule برای پست ها کار می کنه ولی فایل php من در پوشه پلاگین را اجرا نمی کنه

لینک به ارسال

درود مجدد

 

در 10 دقیقه قبل، triton گفته است :

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

در مورد خروجی باینری API یه توضیحی بدید متوجه نشدم دقیقا چی هست.

نقل قول

add_rewrite_rule برای پست ها کار می کنه ولی فایل php من در پوشه پلاگین را اجرا نمی کنه

هوک های query_vars و add_rewrite_rule میتونند کامل از پایه یه روت روی سایت شما ایجاد کنند.

مثل همون مثالی که زدید.

نقل قول

wordpress.com/wp-my-service/

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

 

موفق باشید

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

در مورد خروجی باینری API یه توضیحی بدید متوجه نشدم دقیقا چی هست.

در واقع یک app دارم که با وب سایت باید مرتبط بشه و اطلاعات ارسالی به صورت باینری بین سایت و برنامه تبادل میشه ... خیلی سریعتر از جیسون هست

 

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

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

من هر چی خوندم و تست زدم که نشد. شما تست کنید میشه wordpress.com/wp-content/plugins/my-plugin/gateway.php را به یه آدرسی مثل wordpress.com/my-service تبدیل کرد

لینک به ارسال

درود مجدد

 

شما توی فایل اصلی پلاگینت میای کدهای زیر رو میذاری.

add_filter('query_vars', function($vars) {
	
	$vars[] = "my-api";
	return $vars;
	
});

add_action('init', function() {
	
	add_rewrite_rule('^my-api/([^/]*)/?$', 'index.php?my-api=$matches[1]', 'top');
	
});

add_action('template_redirect', function() {
	
	if(get_query_var('my-api', false) !== false) {
		
		add_filter('template_include', function() {
			return plugin_dir_path(__FILE__) . 'gateway.php';
        });
		
	}
	
});

بعدش هر درخواستی به این مسیر ها بشه.

http://domain.com/my-api/post/
یا
http://domain.com/my-api/comment/
یا
http://domain.com/my-api/page/

وردپرس درخوسات رو هدیات میکنه سمت فایل gateway.php که توی پوشه اصلی پلاگین هستش.

 

موفق باشید

لینک به ارسال

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

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

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

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

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

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

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

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

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