SHET26

نمایش محتوا فقط به کاربران واردشده در وردپرس

اگه می‌خواید پیام خوش‌آمدگویی، لینک حساب کاربری یا بخشی از قالب فقط برای اعضای واردشده دیده بشه، وردپرس ابزار لازم رو از قبل در اختیارتون می‌ذاره. با یک شرط کوتاه می‌تونید وضعیت ورود بازدیدکننده رو بررسی کنید و برای اعضا و مهمان‌ها خروجی متفاوتی بسازید.

توی این آموزش، اول با تفاوت کاربر واردشده و مهمان آشنا می‌شید. بعد کد کامل رو می‌بینید و یاد می‌گیرید هر بخش اون چه کاری انجام می‌ده. قبل از اجرای کد هم درباره نسخه پشتیبان، چایلد تم، کش و محدودیت امنیتی این روش صحبت می‌کنیم تا تغییراتتون دردسر تازه‌ای برای سایت نسازه.

آنچه در این مقاله می‌خوانید

نمایش محتوا فقط به کاربران وارد شده در وردپرس چطور کار می‌کنه؟

وقتی کسی وارد حسابش می‌شه، وردپرس وضعیت ورود اون رو تشخیص می‌ده. کد قالب هم می‌تونه همین وضعیت رو بررسی کنه. نتیجه فقط دو حالت داره: بازدیدکننده وارد حسابش شده یا هنوز به‌عنوان مهمان از سایت بازدید می‌کنه.

بر اساس همین نتیجه می‌تونید یک شرط بسازید. اگه کاربر وارد شده باشه، بخش مخصوص اعضا نمایش داده می‌شه. اگه وارد نشده باشه، می‌تونید یک پیام، لینک ورود یا لینک ثبت‌نام متفاوت به اون نشون بدید.

کاربر واردشده و کاربر مهمان چه فرقی دارن؟

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

کاربر مهمان وارد هیچ حسابی نشده. پس وردپرس نمی‌تونه اون رو به یک حساب مشخص نسبت بده. یادتون نره واردشدن با داشتن مجوز یکی نیست. اگه یک بخش فقط باید برای مدیر، نویسنده یا مشتری خاصی دیده بشه، باید علاوه بر وضعیت ورود، سطح دسترسی کاربر رو هم بررسی کنید.

چه بخش‌هایی از سایت رو می‌تونید برای اعضا شخصی‌سازی کنید؟

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

  • نمایش نام کاربر در سربرگ سایت
  • نمایش لینک حساب کاربری یا خروج
  • نمایش لینک ورود و ثبت‌نام به مهمان‌ها
  • نمایش یک پیام یا دکمه مخصوص اعضا
  • مخفی کردن یک بخش ساده از صفحه برای مهمان‌ها

این روش فقط تصمیم می‌گیره چه خروجی‌ای داخل صفحه دیده بشه. اگه فایل خصوصی، لینک دانلود محافظت‌شده یا محتوای پولی دارید، مخفی کردن یک بخش از قالب کافی نیست. دسترسی مستقیم به فایل و داده هم باید از سمت سرور یا سیستم عضویت کنترل بشه.

کش هم روی نتیجه اثر می‌ذاره. کش یعنی یک نسخه آماده از صفحه ذخیره می‌شه تا سایت سریع‌تر باز بشه. اگه نسخه شخصی‌سازی‌شده یک عضو داخل کش عمومی ذخیره بشه، ممکنه خروجی اشتباه به بازدیدکننده دیگه‌ای نشون داده بشه. پس قبل از استفاده، مطمئن بشید سامانه کش سایتتون صفحات اعضای واردشده رو عمومی ذخیره نمی‌کنه یا خروجی اعضا و مهمان‌ها رو جدا نگه می‌داره.

قبل از اضافه کردن کد چه کارهایی لازمه؟

کد این آموزش با PHP نوشته شده؛ همون زبانی که بخش اصلی وردپرس باهاش اجرا می‌شه. یک پرانتز یا نشانه جاافتاده می‌تونه سایت رو با خطا روبه‌رو کنه. پس اول نسخه پشتیبان بگیرید و اگه سایت آزمایشی دارید، تغییر رو همون‌جا امتحان کنید.

چرا بهتره از سایتتون نسخه پشتیبان بگیرید؟

نسخه پشتیبان کمک می‌کنه اگه فایل اشتباهی تغییر کرد یا سایت باز نشد، نسخه سالم رو برگردونید. بهتره از فایل‌ها و پایگاه داده نسخه پشتیبان داشته باشید. فقط گرفتن نسخه پشتیبان کافی نیست؛ باید بدونید از کدوم بخش هاست یا سرویس پشتیبان‌گیری می‌تونید اون رو بازیابی کنید.

چرا نباید فایل‌های قالب اصلی رو مستقیم تغییر بدید؟

اگه فایل‌های قالب اصلی رو مستقیم ویرایش کنید، به‌روزرسانی بعدی قالب ممکنه تغییراتتون رو پاک کنه. بهتره اول مستندات قالب رو بررسی کنید و ببینید برای اضافه کردن این خروجی، هوک یا روش پیشنهادی مشخصی داره یا نه. هوک یعنی نقطه‌ای آماده در قالب یا وردپرس که اجازه می‌ده بدون جایگزین کردن کل فایل، کد خودتون رو اجرا کنید.

اگه قالب هوک مناسبی نداره، چایلد تم یا یک افزونه اختصاصی کوچک می‌تونه انتخاب بعدی باشه. جایگزین کردن کامل فایل‌هایی مثل header.php باید با احتیاط انجام بشه، چون نسخه کپی‌شده ممکنه بعد از به‌روزرسانی قالب اصلی قدیمی بمونه.

چایلد تم چیه و چه کمکی به شما می‌کنه؟

چایلد تم یا قالب فرزند، قالب کوچکیه که طراحی و امکانات قالب اصلی رو می‌گیره، ولی تغییرات اختصاصی شما رو جدا نگه می‌داره. به همین خاطر، به‌روزرسانی قالب اصلی معمولاً فایل‌های چایلد تم رو بازنویسی نمی‌کنه.

البته چایلد تم همه مشکلات نگهداری رو حل نمی‌کنه. اگه یک فایل کامل از قالب اصلی رو داخل اون کپی کنید، باید بعد از به‌روزرسانی‌های مهم بررسی کنید که ساختار فایل اصلی عوض نشده باشه. ساختن یک پوشه با نام دلخواه هم کافی نیست؛ چایلد تم باید درست تعریف و فعال بشه. اگه با فایل‌های قالب آشنا نیستید، بهتره این بخش رو به توسعه‌دهنده سایتتون بسپارید.

نمایش قسمتی از قالب وردپرس فقط به اعضای سایت

کد زیر اول وضعیت ورود رو بررسی می‌کنه. اگه کاربر وارد حسابش شده باشه، نام نمایشی اون داخل پیام خوش‌آمدگویی دیده می‌شه. اگه کاربر مهمان باشه، پیام دیگری همراه با لینک ورود نمایش داده می‌شه.

PHP
<?php if ( is_user_logged_in() ) :    $current_user = wp_get_current_user();?>    <p class="member-message">        سلام <?php echo esc_html( $current_user->display_name ); ?>، خوش اومدید!    </p><?php else : ?>    <p class="guest-message">        سلام! برای دیدن بخش اعضا،        <a href="<?php echo esc_url( wp_login_url( get_permalink() ) ); ?>">وارد حساب کاربریتون بشید</a>.    </p><?php endif; ?>

این نمونه برای نمایش داخل صفحه‌ای نوشته شده که get_permalink() نشانی درست همون صفحه رو برمی‌گردونه. اگه کد رو توی سربرگ عمومی، صفحه اصلی، بایگانی، نتایج جستجو یا صفحه خطای ۴۰۴ می‌ذارید، مقصد برگشت بعد از ورود رو جداگانه آزمایش کنید. توی این صفحه‌ها ممکنه get_permalink() نشانی مورد انتظارتون رو نسازه.

کد تشخیص کاربر واردشده در وردپرس

تابع is_user_logged_in() فقط بررسی می‌کنه بازدیدکننده وارد یک حساب وردپرس شده یا نه. اگه نتیجه درست باشه، بخش اول شرط اجرا می‌شه. اگه نتیجه نادرست باشه، کد بعد از else برای مهمان اجرا می‌شه.

نمایش پیام اختصاصی همراه با نام کاربر

بعد از تأیید ورود، تابع wp_get_current_user() اطلاعات حساب فعلی رو می‌گیره. ویژگی display_name هم نام نمایشی کاربر رو در اختیار کد می‌ذاره. این نام می‌تونه با نام کاربری ورود فرق داشته باشه، چون کاربر یا مدیر سایت می‌تونه نام نمایشی دیگری انتخاب کنه.

نمایش یک پیام متفاوت به کاربران مهمان

بخش else برای افرادی اجرا می‌شه که وارد سایت نشدن. تابع wp_login_url() نشانی ورود رو می‌سازه. مقداری که به این تابع می‌دید، مقصد برگشت کاربر بعد از ورود هست. توی نمونه بالا این مقصد با get_permalink() ساخته شده، ولی باید مطمئن بشید در محل اجرای کد، نشانی درست صفحه رو برمی‌گردونه.

کد نمایش محتوا فقط به کاربران وارد شده در وردپرس چطور کار می‌کنه؟

حالا سه بخش اصلی کد رو جدا بررسی می‌کنیم: تشخیص ورود، گرفتن اطلاعات حساب و امن‌کردن خروجی. این سه کار هدف متفاوتی دارن و بهتره هیچ‌کدوم رو حذف نکنید.

تابع is_user_logged_in چه چیزی رو بررسی می‌کنه؟

تابع is_user_logged_in() فقط وضعیت ورود بازدیدکننده فعلی رو بررسی می‌کنه. این تابع نمی‌گه کاربر مدیر، نویسنده یا مشتریه و مجوز انجام یک کار خاص رو هم تأیید نمی‌کنه. پس برای محتوایی که به سطح دسترسی خاصی نیاز داره، بررسی ورود به‌تنهایی کافی نیست.

تابع wp_get_current_user چطور اطلاعات کاربر رو می‌گیره؟

تابع wp_get_current_user() اطلاعات حساب فعلی رو برمی‌گردونه. این اطلاعات می‌تونه شامل شناسه، ایمیل، نام نمایشی و نقش‌های کاربر باشه. توی این آموزش فقط نام نمایشی رو لازم داریم.

بهتره این تابع رو بعد از تأیید وضعیت ورود اجرا کنید. این ترتیب باعث می‌شه مسیر کد برای شما واضح باشه: اول ورود بررسی می‌شه و بعد اطلاعات همون عضو گرفته می‌شه.

چرا باید نام کاربر رو با esc_html امن کنید؟

نام کاربر قراره داخل متن HTML نمایش داده بشه. تابع esc_html() نویسه‌های خاص رو به شکل امن آماده می‌کنه تا مرورگر اون‌ها رو به‌عنوان بخشی از کد HTML اجرا نکنه. به این کار امن‌کردن خروجی می‌گن.

برای نشانی لینک هم از esc_url() استفاده کردیم. esc_html() برای متن مناسبه و esc_url() برای نشانی اینترنتی. پس این دو تابع جای هم استفاده نمی‌شن.

کد رو کجای سایت قرار بدید؟

محل قرار گرفتن کد به قالب و جایی بستگی داره که می‌خواید پیام دیده بشه. یادتون نره PHP داخل بلوک «HTML سفارشی» اجرا نمی‌شه. پس اگه کد بالا رو مستقیم داخل نوشته، برگه یا ویرایشگر سایت بچسبونید، نتیجه‌ای نمی‌گیرید و حتی ممکنه خود کد به‌صورت متن دیده بشه.

اضافه کردن کد به قالب کلاسیک با چایلد تم

اگه قالب کلاسیک دارید، اول مستندات همون قالب رو ببینید و دنبال هوک مناسب بگردید. هوک یک جای آماده برای اجرای کده و کمک می‌کنه مجبور نشید فایل بزرگی مثل header.php رو کامل کپی کنید. اگه قالب راه مشخصی برای این کار نداره، می‌تونید با کمک توسعه‌دهنده کد رو داخل چایلد تم یا یک افزونه اختصاصی کوچک قرار بدید.

گاهی برای تغییر ظاهر یک بخش، کپی کردن فایل قالب داخل چایلد تم لازمه؛ ولی این کار رو انتخاب اول در نظر نگیرید. نسخه کپی‌شده بعد از به‌روزرسانی قالب اصلی خودکار تازه نمی‌شه. پس ممکنه بعداً بعضی اصلاحات یا قابلیت‌های جدید قالب رو نگیره. اگه تازه‌کار هستید، قبل از جایگزین کردن فایل‌های قالب از پشتیبانی قالب یا توسعه‌دهنده کمک بگیرید.

نمایش پیام در سربرگ یا بخش کناری سایت

برای نمایش پیام در سربرگ یا بخش کناری، کد باید در جای مناسبی از ساختار قالب اجرا بشه. قرار دادن کد وسط یک تگ HTML یا داخل شرط ناقص می‌تونه چیدمان صفحه رو خراب کنه. اسم فایل هم در همه قالب‌ها یکی نیست؛ پس فقط با حدس زدن سراغ header.php یا sidebar.php نرید.

بعد از ذخیره تغییر، صفحه رو یک‌بار با حساب واردشده و یک‌بار در پنجره ناشناس مرورگر باز کنید. بعد کش سایت و مرورگر رو هم پاک کنید. اگه سایتتون کش تمام‌صفحه داره، مطمئن بشید نسخه اعضا داخل کش عمومی مهمان‌ها ذخیره نمی‌شه.

تفاوت اجرای این روش در قالب‌های کلاسیک و بلوکی

قالب کلاسیک معمولاً بخش‌های صفحه رو با فایل‌های PHP می‌سازه. قالب بلوکی بیشتر از ویرایشگر سایت و فایل‌های قالب HTML کمک می‌گیره. به همین خاطر، روشی که برای یک قالب کلاسیک جواب می‌ده ممکنه در قالب بلوکی قابل‌استفاده نباشه.

برای قالب بلوکی نمی‌تونید PHP خام رو داخل بلوک HTML قرار بدید. راه مناسب معمولاً ساخت یک شورت‌کد، بلوک پویا یا افزونه اختصاصیه. شورت‌کد یک عبارت کوتاه مثل [member_message] هست که وردپرس موقع نمایش صفحه اون رو به پیام واقعی تبدیل می‌کنه. ساخت امن این قابلیت به کدنویسی بیشتری نیاز داره؛ پس اگه تجربه فنی ندارید، بهتره از توسعه‌دهنده کمک بگیرید.

نمایش محتوای متفاوت برای اعضا و مهمان‌ها

با همین شرط می‌تونید اعضا رو سریع‌تر به حساب کاربریشون برسونید و به مهمان‌ها لینک ورود یا ثبت‌نام نشون بدید. فقط قبل از نوشتن کد مشخص کنید هر گروه باید چه چیزی ببینه. این کار جلوی پیام‌های اضافی و مسیرهای گیج‌کننده رو می‌گیره.

نمایش لینک حساب کاربری به اعضای سایت

اگه سایتتون صفحه حساب کاربری داره، نشانی واقعی همون صفحه رو در بخش اعضا بذارید. این نشانی به افزونه عضویت، فروشگاه یا ساختار سایتتون بستگی داره. پس از یک آدرس حدسی استفاده نکنید.

PHP
<?php if ( is_user_logged_in() ) : ?>    <a href="https://example.com/account/">حساب کاربری من</a><?php endif; ?>

نشانی https://example.com/account/ در این نمونه واقعی نیست و فقط جای آدرس حساب کاربری رو نشون می‌ده. قبل از استفاده، اون رو با نشانی بررسی‌شده سایت خودتون عوض کنید و لینک رو هم با یک حساب آزمایشی باز کنید.

نمایش لینک ورود یا ثبت‌نام به کاربران مهمان

برای لینک ورود می‌تونید از wp_login_url() کمک بگیرید. تابع wp_registration_url() هم لینک ثبت‌نام رو می‌سازه. البته این لینک وقتی کاربرد داره که عضویت عمومی رو از مسیر «تنظیمات ← عمومی» فعال کرده باشید.

PHP
<?php if ( ! is_user_logged_in() ) : ?>    <a href="<?php echo esc_url( wp_login_url( get_permalink() ) ); ?>">ورود</a>    <a href="<?php echo esc_url( wp_registration_url() ); ?>">ثبت‌نام</a><?php endif; ?>

در این نمونه، get_permalink() مقصد برگشت بعد از ورود رو مشخص می‌کنه. اگه کد در صفحه اصلی، بایگانی، جستجو یا صفحه خطا اجرا می‌شه، مقصد رو جدا آزمایش کنید. برای ساخت صفحه ورود اختصاصی هم می‌تونید آموزش ساخت فرم ورود و ثبت نام در وردپرس رو ببینید.

نمایش پیام خوش‌آمدگویی شخصی‌سازی‌شده

پیام خوش‌آمدگویی رو کوتاه نگه دارید و کنار اون یک کار مفید پیشنهاد بدید؛ مثلاً لینک حساب کاربری، دوره‌های خریداری‌شده یا بخش پشتیبانی. پیام بلند فضای سربرگ رو می‌گیره و توی صفحه موبایل هم ممکنه ظاهر نامرتبی بسازه.

برای یک خوش‌آمدگویی ساده، نام نمایشی کاربر کافیه. ایمیل، شماره تلفن، نشانی یا جزئیات سفارش رو در بخش عمومی قالب نشون ندید. شرط ورود فقط خروجی صفحه رو عوض می‌کنه و به‌تنهایی جای کنترل دسترسی به اطلاعات خصوصی رو نمی‌گیره.

نکات امنیتی و خطاهای رایج

قبل از تغییر فایل‌های PHP چه نکاتی رو رعایت کنید؟

  1. از فایل‌ها و پایگاه داده نسخه پشتیبان بگیرید و راه بازیابی اون رو یاد بگیرید.
  2. تغییر رو اول روی سایت آزمایشی انجام بدید.
  3. فایل‌های قالب اصلی رو مستقیم ویرایش نکنید.
  4. اول دنبال هوک یا روش پیشنهادی خود قالب بگردید.
  5. کد رو با یک ویرایشگر کد بررسی کنید تا نشانه‌های ناقص راحت‌تر دیده بشن.
  6. حالت عضو و مهمان رو جداگانه آزمایش کنید.
  7. تنظیمات کش رو بررسی کنید تا خروجی شخصی اعضا عمومی نشه.

اگه بعد از اضافه کردن کد سایت باز نشد چه کار کنید؟

اول همون تغییری رو که تازه انجام دادید برگردونید. اگه پیشخوان باز نمی‌شه، از مدیریت فایل هاست یا روش امنی که برای دسترسی به فایل‌ها دارید کمک بگیرید و فایل تغییرکرده رو با نسخه سالم جایگزین کنید. اینجا همون نسخه پشتیبان واقعاً به کارتون میاد.

جا افتادن نقطه‌ویرگول، بسته نشدن پرانتز و قرار گرفتن کد در جای اشتباه از علت‌های رایج خطای PHP هستن. گزارش خطای سرور ممکنه نام فایل و شماره خط مشکل‌دار رو نشون بده. جزئیات خطا رو در محیط آزمایشی یا فایل گزارش بررسی کنید و اون رو به بازدیدکننده‌های سایت نشون ندید.

چرا ممکنه نام کاربر یا پیام نمایش داده نشه؟

  • کاربر وارد حسابش نشده یا نشست ورودش تموم شده.
  • کد در فایل یا هوکی قرار گرفته که صفحه موردنظر اون رو اجرا نمی‌کنه.
  • کش سایت یا مرورگر هنوز نسخه قبلی صفحه رو نشون می‌ده.
  • خروجی عضو و مهمان داخل کش با هم قاطی شده.
  • کد داخل بلوک HTML سفارشی قرار گرفته و PHP اونجا اجرا نمی‌شه.
  • قالب بلوکیه و روش مخصوص قالب کلاسیک روی اون اجرا شده.
  • یک خطای PHP جلوی اجرای کامل بخش موردنظر رو گرفته.

اول با یک حساب آزمایشی وارد بشید و همون صفحه رو باز کنید. بعد صفحه رو در پنجره ناشناس هم ببینید. اگه تفاوتی ندیدید، کش سایت و مرورگر رو پاک کنید و مطمئن بشید کد در بخش درست قالب اجرا می‌شه. اگه از سرویس کش استفاده می‌کنید، روش کنار گذاشتن کاربران واردشده از کش عمومی رو در مستندات همون سرویس بررسی کنید.

نمایش محتوا برای اعضا بدون کدنویسی

کد این آموزش برای یک پیام یا لینک ساده مناسبه. ولی اگه می‌خواید چند نوشته رو محدود کنید، فرم عضویت بسازید، دسترسی نقش‌ها رو مدیریت کنید یا محتوای پولی ارائه بدید، یک افزونه عضویت معمولاً مسیر قابل‌مدیریت‌تریه.

چه زمانی استفاده از افزونه انتخاب بهتریه؟

اگه مدیر سایت باید بدون ویرایش کد دسترسی‌ها رو عوض کنه، افزونه انتخاب راحت‌تریه. برای ساخت فرم عضویت و مدیریت بعضی بخش‌های محتوا، آموزش ساخت فرم عضویت در وردپرس با WP-Members رو ببینید. اگه می‌خواید کل سایت برای مهمان‌ها بسته باشه، آموزش محدود کردن دسترسی کاربران مهمان در وردپرس به هدفتون نزدیک‌تره.

موقع انتخاب افزونه محدودسازی محتوا به چه نکاتی توجه کنید؟

  • با نسخه وردپرس، قالب و PHP هاستتون سازگار باشه.
  • به‌روزرسانی و پشتیبانی منظم داشته باشه.
  • بتونه دسترسی رو بر اساس ورود، نقش یا قابلیت کاربر کنترل کنه.
  • فقط ظاهر محتوا رو پنهان نکنه و دسترسی مستقیم به بخش حساس رو هم ببنده.
  • با افزونه کش، فروشگاه و سیستم عضویت سایتتون سازگار باشه.
  • تنظیماتش برای نیاز واقعی شما قابل‌فهم و قابل‌مدیریت باشه.
  • قبل از استفاده در سایت اصلی، روی یک محیط آزمایشی بررسی شده باشه.

ساخت پنل کاربری و پیام خوش‌آمدگویی حرفه‌ای با میهن پنل

اگه نمی‌خواید برای ساخت فرم ورود، پنل کاربری و پیام‌های اختصاصی سراغ کدنویسی برید، افزونه میهن پنل این امکانات رو از داخل تنظیمات وردپرس در اختیارتون می‌ذاره. با این افزونه می‌تونید فرم ورود و عضویت و پنل کاربران رو شخصی‌سازی کنید و پیام‌ها یا اطلاعیه‌های هدفمند رو به اعضای سایت نشون بدید.

ساخت پنل کاربری و پیام خوش‌آمدگویی حرفه‌ای با میهن پنل
ساخت پنل کاربری و پیام خوش‌آمدگویی حرفه‌ای با میهن پنل

میهن پنل از ورود هوشمند و یکپارچه، ثبت‌نام با ایمیل یا پیامک، تأیید دستی یا خودکار کاربر و انتخاب نقش موقع ثبت‌نام پشتیبانی می‌کنه. ابزارک‌های ورود و عضویت هم کمک می‌کنن فرم مناسب رو بدون ساختن همه‌چیز از صفر در بخش دلخواه سایتتون قرار بدید.

ارسال ایمیل بعد از ثبت نام کاربر
ارسال ایمیل بعد از ثبت نام کاربر

برای پنل کاربری هم می‌تونید داشبورد، منوها، لینک‌ها و محتوای دلخواه بسازید. فرم ویرایش پروفایل، عکس پروفایل سفارشی، نمایش روزهای عضویت، لینک خروج مستقیم و حذف باکس‌های اضافی پنل از امکاناتیه که مدیریت حساب رو برای کاربر ساده‌تر می‌کنه.

آپلود تصویر پروفایل توسط کاربر در میهن پنل
آپلود تصویر پروفایل توسط کاربر در میهن پنل

اگه ظاهر صفحه ورود براتون مهمه، می‌تونید لوگو، پس‌زمینه، قالب پنل و رنگ‌بندی رو تغییر بدید. فیلدهای سفارشی مثل آپلود فایل، انتخاب تاریخ، فهرست انتخابی، چک‌باکس و گزینه‌های رادیویی هم برای فرم ثبت‌نام و پروفایل در دسترس هستن.

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

جمع‌بندی

برای نمایش محتوا فقط به کاربران وارد شده در وردپرس، تابع is_user_logged_in() وضعیت ورود رو بررسی می‌کنه. بعد می‌تونید با wp_get_current_user() اطلاعات عضو فعلی رو بگیرید و پیام یا لینک متفاوتی برای اعضا و مهمان‌ها بسازید.

قبل از اجرا، نسخه پشتیبان بگیرید و اول دنبال هوک یا روش پیشنهادی قالب بگردید. خروجی متن و نشانی رو امن کنید، حالت عضو و مهمان رو جدا آزمایش کنید و تنظیمات کش رو جدی بگیرید. برای فایل خصوصی، اطلاعات حساس و محتوای پولی هم فقط پنهان کردن ظاهر صفحه کافی نیست؛ دسترسی واقعی به محتوا باید بسته بشه.

سؤالات متداول

آیا این روش محتوا رو از کاربران مهمان مخفی می‌کنه؟

بله، بخشی که داخل شرط اعضا قرار گرفته برای مهمان‌ها نمایش داده نمی‌شه. ولی این کار به‌تنهایی جلوی باز شدن مستقیم فایل، لینک دانلود یا داده‌ای رو که از مسیر دیگه‌ای در دسترسه نمی‌گیره. برای محتوای حساس باید دسترسی واقعی هم کنترل بشه.

آیا کد بعد از به‌روزرسانی قالب باقی می‌مونه؟

اگه کد رو داخل فایل‌های قالب اصلی بذارید، به‌روزرسانی ممکنه اون رو پاک کنه. بهتره اول از هوک یا روش پیشنهادی قالب کمک بگیرید و در صورت نیاز کد رو داخل چایلد تم یا افزونه اختصاصی نگه دارید.

آیا این روش در قالب‌های بلوکی هم قابل‌استفاده‌ست؟

اصل بررسی ورود در قالب‌های بلوکی هم کاربرد داره، ولی PHP خام داخل بلوک HTML یا ویرایشگر سایت اجرا نمی‌شه. برای این قالب‌ها معمولاً به شورت‌کد، بلوک پویا یا افزونه اختصاصی نیاز دارید.

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

بررسی ورود به‌تنهایی کافی نیست و باید مجوز کاربر رو هم بررسی کنید. برای کارهای حساس بهتره قابلیت موردنیاز با تابع current_user_can بررسی بشه، چون نقش کاربری همیشه معیار دقیقی برای اجازه انجام یک کار نیست.

نظر شما در این مورد چیه؟

  1. U27765۱۸ اسفند ۱۳۹۹

    سلام خسته نباشید
    تصویر ویژه این مقاله خطای 404 میده 🙂

    • رضا راد۱۹ اسفند ۱۳۹۹

      درود بر شما سپاس برطرف خواهیم کرد.

  2. U32865۱۳ دی ۱۳۹۹

    سلام وقتتون بخیر
    من افزونه میهن پنل خریدم و یه دکمه همینجوری توی هدر سایتم گذاشتم و بهش لینک صفحه ورود دادم میخوام وقتی کاربر وارد شد علاوه بر این پیغامی که اینجا توضیح دادین اون دکمه هم حذف بشه در واقع این پیغام جای اون دکمه باشه الان وقتی کاربر ورود میکنه همچنان اون دکمه هست
    ممنون

    • تیم پشتیبانیتیم پشتیبانی۱۳ دی ۱۳۹۹

      با سلام
      این موارد نیاز به دانش کدنویسی و ایجاد تغییراتی در کدهای قالب داره که امکان توضیح اون در قالب یک دیدگاه یا تیکت نیست

  3. کاربر مهمان۸ شهریور ۱۳۹۷

    سلام امکان نصب روی چنیدن سایت وجود داره؟؟؟

    • رضا راد۹ شهریور ۱۳۹۷

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

  4. کاربر مهمان۱۸ تیر ۱۳۹۷

    سلام
    سایت من majazyhelp.ir است من میخوام
    وقتی هرکس وارد سایت من شد بگه
    majazyhelp.ir says
    خوش اومدین
    وبعد بر روی ok بزنه

    • تیم پشتیبانیتیم پشتیبانی۱۸ تیر ۱۳۹۷

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

  5. کاربر مهمان۱۶ فروردین ۱۳۹۶

    سلام ببخشید من این کد هارا گذاشتم توی هدر اما ارور 500 داد و سایت بالا نیومد میشه کمک کنید مشکل از کجاست؟

    • رضا راد۱۶ فروردین ۱۳۹۶

      سلام مشکلی در ویرایش کد ها دارید

  6. U5983۱۴ اسفند ۱۳۹۵

    ناحیه top header قالب مکس شاپ در کدوم فایل php قرار دارد ؟چون می خواهم در ناحیه top header سلام کاربر را قرار دهم و اینکه اکه ممکنه بگید چگونه می تونم مثل سایت عالی شما در بالای نظرات لینک ورود و سلام کاربر را قرار دهمبا تشکر فراوان

    • تیم پشتیبانیتیم پشتیبانی۱۴ اسفند ۱۳۹۵

      سلام اکثر قالب ها در header.php آن وجود دارد

      • U5983۱۴ اسفند ۱۳۹۵

        با تشکر فراوانو اینکه اگه ممکنه بگید چگونه می تونم مثل سایت عالی شما در بالای نظرات لینک ورود و سلام کاربر را قرار دهمبا تشکر فراوان

  7. U5066۱۸ آبان ۱۳۹۵

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

    • رضا راد۱۸ آبان ۱۳۹۵

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

  8. کاربر مهمان۲۹ مهر ۱۳۹۵

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

    • رضا راد۲۹ مهر ۱۳۹۵

      باید کد نویسی javascript بهش اضافه کنید. توی گوگل سرچ کنید

  9. کاربر مهمان۲۸ مهر ۱۳۹۵

    عاااالی

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

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.