triton

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

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

سلام

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

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

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

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

 

0

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


لینک به پست

سلام و درود

 

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

 

موفق باشید

0

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


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

سلام و درود

 

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

 

موفق باشید

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

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

0

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


لینک به پست

درود مجدد

 

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

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

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

نقل قول

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

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

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

نقل قول

wordpress.com/wp-my-service/

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

 

موفق باشید

0

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


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

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

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

 

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

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

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

0

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


لینک به پست

درود مجدد

 

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

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

 

موفق باشید

0

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


لینک به پست

من شبیه این کدها را نوشتم ولی نمی دونم چرا برای من کار نمی کنه و 404 میده

 

0

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


لینک به پست

مشکل حل شد ... باید از توی تنظیمات Permalinks را یکبار ذخیره می کردم

0

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


لینک به پست

درود مجدد

 

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

مشکل حل شد ... باید از توی تنظیمات Permalinks را یکبار ذخیره می کردم

بله همینطوره.

 

موفق باشید

0

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


لینک به پست

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

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

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

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


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

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

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


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