حذف فیلد آدرس وبسایت از نظرات وردپرس؛ آموزش با کد و بدون افزونه

منتشر شده در: ۲۰۲۴/۹/۱۴،‏ ۱۳:۰۳

اگر فرم نظرات سایت وردپرسی شما شامل فیلد «وبسایت» یا «Website» است و به این فیلد نیازی ندارید، می‌توانید آن را به‌سادگی حذف کنید.

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

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

حذف فیلد آدرس وبسایت از نظرات وردپرس

فیلد آدرس وبسایت در نظرات وردپرس چیست؟

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

فیلد وبسایت برای این است که کاربر در زمان ثبت دیدگاه، آدرس سایت خود را وارد کند. وردپرس این فیلد را با کلید url در فرم نظرات مدیریت می‌کند. تابع comment_form() نیز امکان کنترل و تغییر فیلدهای پیش‌فرض فرم نظر را در اختیار توسعه‌دهنده قرار می‌دهد.

اگر این قابلیت برای سایت شما لازم نیست، می‌توانید فقط همین فیلد را حذف کنید و بقیه فرم نظرات را بدون تغییر نگه دارید.

چرا فیلد وبسایت نظرات وردپرس را حذف کنیم؟

دلیل حذف این فیلد برای همه سایت‌ها یکسان نیست، اما چند کاربرد رایج دارد.

کاهش انگیزه برای کامنت‌های لینک‌محور

برخی ارسال‌کنندگان اسپم ممکن است از فیلد Website برای قرار دادن URL تبلیغاتی یا نامرتبط استفاده کنند. حذف این فیلد، این مسیر مشخص را از فرم استاندارد حذف می‌کند.

البته یک نکته مهم وجود دارد:

حذف فیلد وبسایت به معنی حذف کامل اسپم نظرات نیست.

اسپمر همچنان می‌تواند متن اسپم ارسال کند، بنابراین برای مقابله جدی با Comment Spam باید از امکانات مدیریت دیدگاه، فیلترهای ضداسپم و تنظیمات مناسب وردپرس هم استفاده شود.

ساده‌تر شدن فرم نظرات

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

حذف فیلدهای غیرضروری می‌تواند فرم نظرات را ساده‌تر و سریع‌تر قابل تکمیل کند.

کنترل لینک‌های کاربران در نظرات

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

بهترین روش حذف فیلد آدرس وبسایت وردپرس بدون افزونه

اگر به کدنویسی ساده وردپرس دسترسی دارید، نیازی نیست فقط برای حذف یک فیلد افزونه جداگانه نصب کنید.

وردپرس یک Hook رسمی به نام:

comment_form_default_fields

در اختیار شما قرار داده که دقیقاً برای تغییر فیلدهای پیش‌فرض فرم نظرات استفاده می‌شود. حتی مستندات رسمی WordPress Developer Resources نیز حذف فیلد url را به‌عنوان نمونه کاربرد این Hook نشان می‌دهد.

کد حذف فیلد Website از نظرات وردپرس

کد زیر را می‌توانید در functions.php قالب فرزند یا یک افزونه مدیریت کد مانند Snippets قرار دهید:

/** * Remove the Website field from the default WordPress comment form. */ function rayawp_remove_comment_website_field( $fields ) { unset( $fields['url'] ); return $fields; } add_filter( 'comment_form_default_fields', 'rayawp_remove_comment_website_field' );

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

این کد چطور کار می‌کند؟

در فرم استاندارد وردپرس، فیلد وبسایت با کلید url در آرایه فیلدها قرار دارد.

این خط:

unset( $fields['url'] );

همان فیلد را از آرایه حذف می‌کند.

در نتیجه وقتی وردپرس فرم دیدگاه را تولید می‌کند، فیلد Website دیگر در فرم استاندارد نمایش داده نمی‌شود.

کد را کجا قرار دهیم؟

سه انتخاب رایج دارید:

۱. functions.php قالب فرزند

اگر سایت شما Child Theme دارد، می‌توانید کد را در functions.php قالب فرزند قرار دهید.

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

۲. افزونه مدیریت کد

می‌توانید کد را با یک افزونه مدیریت Snippet اضافه کنید.

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

حذف فیلد Website از نظرات وردپرس بدون افزونه بهتر است یا با افزونه؟

برای چنین تغییر کوچکی، اگر با کد آشنا هستید، راهکار مبتنی بر Hook معمولاً ساده‌تر است.

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

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

با این حال، برای یک تغییر مشخص مثل حذف Website، بهتر است قبل از نصب افزونه جدید بررسی کنید آیا واقعاً به افزونه جداگانه نیاز دارید یا نه.

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

آیا حذف فیلد آدرس وبسایت جلوی اسپم وردپرس را می‌گیرد؟

خیر.

این یکی از مهم‌ترین نکاتی است که نباید در آموزش‌های این موضوع اشتباه منتقل شود.

حذف فیلد Website فقط یکی از مسیرهای ارسال URL توسط کاربر در فرم استاندارد نظرات را حذف می‌کند.

هنوز هم ممکن است فردی یک دیدگاه تبلیغاتی یا اسپم را داخل متن Comment ارسال کند.

بنابراین اگر مشکل اصلی شما اسپم نظرات وردپرس است، حذف فیلد URL باید فقط یکی از اقدامات شما باشد.

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

آیا حذف فیلد Website روی سئو تأثیر دارد؟

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

حذف فیلد Website از فرم نظرات یک ترفند مستقیم برای افزایش رتبه سایت در گوگل نیست.

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

بنابراین نباید انتظار داشته باشید فقط با حذف این فیلد، رتبه صفحات سایت افزایش پیدا کند.

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

آیا URLهای قبلی کاربران هم حذف می‌شوند؟

خیر.

این کد فقط فیلد Website را از فرم ارسال دیدگاه حذف می‌کند.

اگر کاربران قبلاً در دیدگاه‌های خود URL ثبت کرده باشند، اجرای این کد به‌خودی‌خود URLهای ذخیره‌شده قبلی را از دیتابیس حذف نمی‌کند.

بنابراین بین این دو مورد تفاوت وجود دارد:

حذف فیلد Website از فرم جدید

و

حذف URLهای قبلی ثبت‌شده در دیدگاه‌ها

این آموزش فقط مورد اول را انجام می‌دهد.

اگر فیلد Website بعد از اجرای کد هنوز نمایش داده می‌شود چه کنیم؟

اگر کد را اضافه کرده‌اید ولی هنوز فیلد وبسایت را می‌بینید، احتمال دارد فرم نظرات سایت شما از فرم استاندارد WordPress استفاده نکند.

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

تابع رسمی comment_form() فیلدهای پیش‌فرض قابل فیلتر را در اختیار توسعه‌دهنده قرار می‌دهد؛ بنابراین اولین قدم این است که مشخص کنید فرم موجود در سایت واقعاً از سیستم استاندارد وردپرس استفاده می‌کند یا نه.

کش سایت را پاک کنید

اگر از افزونه کش، CDN یا کش سرور استفاده می‌کنید، بعد از افزودن کد کش را پاک کنید.

فرم قالب را بررسی کنید

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

وجود دوباره url را در HTML بررسی کنید

در صورت نیاز، کد HTML فرم را بررسی کنید و ببینید آیا فیلدی با ساختار مشابه:

name="url"

هنوز تولید می‌شود یا خیر.

آیا می‌توان این فیلد را با CSS مخفی کرد؟

بله، از نظر ظاهری می‌توان یک فیلد را با CSS مخفی کرد؛ اما برای این کار، روش PHP انتخاب بهتری است.

CSS فقط نحوه نمایش عنصر را تغییر می‌دهد، در حالی که Hook وردپرس می‌تواند خود فیلد را از مجموعه فیلدهای فرم حذف کند.

برای همین، اگر فرم شما همان فرم استاندارد WordPress است، استفاده از comment_form_default_fields راهکار تمیزتری است.

آیا حذف فیلد Website برای همه سایت‌ها مناسب است؟

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

اما اگر:

  • کاربران نیازی به معرفی سایتشان ندارند؛
  • تعداد نظرات اسپم بالاست؛
  • سایت شما یک سایت شرکتی یا خدماتی است؛
  • دریافت URL کاربران کاربردی برایتان ندارد؛

حذف آن می‌تواند تصمیم منطقی‌تری باشد.

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

حذف فیلد وبسایت در وردپرس با یک کد؛ خلاصه راهکار

اگر فقط دنبال سریع‌ترین روش هستید، همین کد کافی است:

/**
 * Remove the Website field from the default WordPress comment form.
 */
function rayawp_remove_comment_website_field( $fields ) {
    unset( $fields['url'] );

    return $fields;
}

add_filter( 'comment_form_default_fields', 'rayawp_remove_comment_website_field' );

کد را در قالب فرزند یا ابزار مدیریت Snippet قرار دهید، سپس کش سایت را پاک کنید و فرم نظرات را بررسی کنید.

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

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

چگونه فیلد آدرس وبسایت را از نظرات وردپرس حذف کنیم؟

ساده‌ترین روش برای فرم استاندارد وردپرس، استفاده از Hook comment_form_default_fields و حذف مقدار url از آرایه فیلدهاست.

آیا برای حذف فیلد Website به افزونه نیاز داریم؟

خیر. اگر به فایل قالب فرزند یا ابزار مدیریت کد دسترسی دارید، این تغییر بدون نصب افزونه جداگانه قابل انجام است.

آیا حذف فیلد وبسایت باعث حذف کامنت‌های اسپم می‌شود؟

خیر. این کار فقط فیلد Website را حذف می‌کند و به‌تنهایی یک سیستم ضداسپم کامل نیست.

آیا URLهای قبلی دیدگاه‌ها هم حذف می‌شوند؟

خیر. کد فقط فیلد را از فرم جدید حذف می‌کند و URLهای قبلی را پاک نمی‌کند.

اگر کد کار نکرد چه کنیم؟

بررسی کنید قالب یا افزونه مورد استفاده، فرم نظرات استاندارد وردپرس را نمایش می‌دهد یا خیر. سپس کش سایت را پاک کنید و HTML فرم را بررسی کنید.

جمع‌بندی

اگر فیلد آدرس وبسایت در فرم نظرات سایت شما کاربردی ندارد، می‌توانید بدون تغییر در هسته وردپرس آن را حذف کنید.

برای فرم استاندارد WordPress، Hook رسمی comment_form_default_fields دقیقاً امکان تغییر فیلدهای پیش‌فرض نظرات را فراهم می‌کند و حذف url یکی از کاربردهای همین Hook است.

مهم‌تر از خود کد این است که بدانید حذف این فیلد قرار نیست سئوی سایت را به‌تنهایی بهتر کند یا همه اسپم‌ها را از بین ببرد؛ هدف اصلی، ساده‌تر کردن فرم و حذف یک ورودی غیرضروری است.

اگر در سایتتان فقط به نام، ایمیل و متن دیدگاه نیاز دارید، این تغییر کوچک می‌تواند فرم نظرات را تمیزتر و مدیریت آن را ساده‌تر کند.