🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ سجاد آقایی
ایجاد یک url ثبت نام و ورود با فعال سازی افزونه
بهنام مرادی حل شده توسط بهنام مرادی

سلام و عرض احترام

من خیلی از افزونه‌ها رو دیدم که وقتی فعالش می‌کنیم خودش یکسری url‌ها رو توی وردپرس ما ایجاد میکنه، مثلا صفحه ورود و ثبت نام با آدرس exp.com/user/login یا exp.com/user/register

بدون اینکه با شورت کدی اضافه کنیم، یا صفحه ای رو تغییر بدیم

چطوری این کار اتفاق می‌افته؟؟

با تشکر

سلام دوست خوبم
آره دقیقا یه موضوع خیلی باحاله و کاربردی توی افزونه‌نویسی وردپرسه. وقتی یه افزونه خودش یه سری URL مثل /user/login یا /user/register درست می‌کنه بدون اینکه نیاز باشه بری برگه‌ای بسازی یا شورت‌کدی بذاری، داره از Rewrite API وردپرس و سیستم Query Vars استفاده می‌کنه.

وردپرس یه سیستم بازنویسی URL داره که می‌تونی بیای بگی:

اگه کاربر رفت به /user/login، در واقع اینو مثل یه کوئری خاص ببین، و من می‌دونم باهاش چیکار کنم.

 

// داخل فایل افزونه‌ات یا توابع پلاگین 
add_action('init', function () {
    add_rewrite_rule('^user/login/?$', 'index.php?custom_login_page=1', 'top');
    add_rewrite_rule('^user/register/?$', 'index.php?custom_register_page=1', 'top');
});
// معرفی کوئری‌های خاصمون 
add_filter('query_vars', function ($vars) {
    $vars[] = 'custom_login_page';
    $vars[] = 'custom_register_page';
    return $vars;
});
// پردازش URLهای خاصمون 
add_action('template_redirect', function () {
    if (get_query_var('custom_login_page')) {
        // محتوای صفحه لاگین رو خروجی بده
        echo '<h1>صفحه ورود اختصاصی ما</h1>';
        exit;
    }
    if (get_query_var('custom_register_page')) {
        // محتوای صفحه ثبت نام رو خروجی بده
        echo '<h1>صفحه ثبت‌نام اختصاصی ما</h1>';
        exit;
    }
});

نکته مهم:

وقتی برای اولین بار این کد رو می‌ذاری، باید یه بار بری توی پیشخوان وردپرس > تنظیمات > پیوندهای یکتا و بدون اینکه چیزی تغییر بدی، روی "ذخیره" کلیک کنی تا وردپرس rewrite rules رو رفرش کنه.
به همین راحتی :)
امیدوارم برات مفید بوده باشه

بهترین پاسخ
بهنام مرادی ۲۰ فروردین ۱۴۰۴، ۱۸:۴۷

سلام مجدد

آقا دمتون گرم، خدا خیرتون بده، مرسی

سجاد آقایی ۲۱ فروردین ۱۴۰۴، ۱۰:۱۷