SHET24

تغییر URL آرشیو نویسنده در وردپرس

تغییر URL آرشیو نویسنده در وردپرس

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

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

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

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

آدرس آرشیو نویسنده در وردپرس چیست؟

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

آدرسش هم معمولاً این شکلیه:

example.com/author/mihanwp

تفاوت Slug و Base در ساختار URL نویسنده

حالا همین آدرس بالا رو بشکنیم. اون mihanwp آخر خط، Slug یا همون نامکه، یعنی شناسه‌ی خودِ اون نویسنده. و اون author وسط آدرس، Base یا همون پایه‌ست، یعنی کلمه‌ای که وردپرس قبل از اسم همه نویسنده‌ها می‌ذاره.

فرقشون اینه که Slug برای هر نویسنده جداست، ولی Base برای کل سایت یکیه. اگه Base رو عوض کنید، آدرس همه نویسنده‌ها با هم تغییر می‌کنه.

چرا وردپرس به‌صورت پیش‌فرض اجازه‌ی تغییرش را نمی‌دهد؟

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

چرا باید آدرس آرشیو نویسنده را تغییر دهیم؟

برسیم به این سوال که چرا باید این آدرس رو عوض کنیم؟ به ترتیب می‌ریم جلو.

جلوگیری از لو رفتن نام کاربری و حملات بروت فورس

این مهم‌ترین دلیلشه و بذارید باهاتون رودربایستی نداشته باشیم: خطرناکه.

کافیه یکی بیاد آخر آدرس سایتتون ‎/?author=1 رو اضافه کنه. وردپرس همون لحظه ریدایرکتش می‌کنه به صفحه آرشیو مدیر سایت و نام کاربری اصلی رو دو دستی تحویلش می‌ده. حالا فکر کنید: برای ورود به پیشخوان دو تا چیز لازمه، نام کاربری و رمز عبور. یعنی طرف بدون هیچ زحمتی نصف کار رو انجام داده و فقط مونده رمز رو با بروت فورس پیدا کنه.

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

حرفه‌ای‌تر شدن لینک‌ها و تأثیر آن روی سئو

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

روش اول: تغییر آدرس آرشیو نویسنده با افزونه Edit Author Slug

این ساده‌ترین راهه و اگه با کد میونه‌ی خوبی ندارید، همین رو برید.

نصب و فعال‌سازی افزونه

اول برید مخزن وردپرس و افزونه Edit Author Slug رو نصب و فعال کنید. رایگانه و کارش هم دقیقاً همینه، اضافه‌کاری نداره. به محض فعال شدن، یه بخش جدید به صفحه پروفایل همه کاربرها اضافه می‌کنه.

افزونه Edit Author Slug
افزونه Edit Author Slug

تغییر Slug نویسنده برای هر کاربر

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

ویرایش کاربر
ویرایش کاربر

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

اگه هیچ‌کدوم از اون گزینه‌های آماده باب میلتون نبود، آخر لیست یه گزینه‌ی Custom هست. تیکش رو بزنید و هرچی دوست دارید بنویسید.

Edit Author Slug
Edit Author Slug

یه توصیه‌ی مهم: از نظر امنیتی سعی کنید این نامک هیچ ربطی به نام کاربری واقعیتون نداشته باشه. اگه نام کاربریتون mihanwp هست، نامک رو نذارید mihanwp، چون اون‌وقت عملاً هیچی رو مخفی نکردید.

بعدش دکمه‌ی Update User رو بزنید و تمام. حالا برید توی سایت روی اسم نویسنده‌ی یه پست کلیک کنید؛ می‌بینید که آدرس دقیقاً با همون نامکی که انتخاب کردید باز می‌شه.

تغییر Base نویسنده از تنظیمات افزونه

تا اینجا فقط اسم نویسنده عوض شد، ولی اون کلمه‌ی author هنوز سر جاشه. برای عوض کردنش برید به تنظیمات همین افزونه. اونجا یه فیلد برای Author Base می‌بینید که می‌تونید به‌جای author هرچی خواستید بذارید، مثلاً profile یا nevisande یا contributor.

تغییر Base نویسنده
تغییر Base نویسنده

تعیین Base جداگانه برای نقش‌های کاربری مختلف

یه امکان جالب دیگه هم داره که می‌تونید برای هر نقش کاربری یه Base متفاوت تعریف کنید. یعنی مدیرها یه آدرس داشته باشن، نویسنده‌ها یه آدرس و مشارکت‌کننده‌ها یه آدرس دیگه.

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

آخر کار حتماً ذخیره تغییرات رو بزنید.

روش دوم: تغییر آدرس آرشیو نویسنده با کد در functions.php

حالا اگه از اون دسته‌ای هستید که برای هر کار کوچیک نمی‌خواید یه افزونه به سایت اضافه کنید (که کاملاً هم درکتون می‌کنیم)، می‌تونید Base رو با یه تیکه کد ساده عوض کنید.

کد تغییر Base نویسنده

این کد رو آخر فایل functions.php قالب چایلدتون اضافه کنید:

php

function change_author_base() {
    global $wp_rewrite;
    $author_slug = 'profile'; // کلمه دلخواه شما به جای author
    $wp_rewrite->author_base = $author_slug;
}
add_action('init', 'change_author_base');

به‌جای profile هر کلمه‌ای که می‌خواید بذارید.

دو تا نکته که حتماً رعایتش کنید: اول اینکه حتماً روی قالب چایلد کار کنید، نه قالب اصلی، وگرنه اولین آپدیت قالب، کدتون رو می‌بره. دوم اینکه قبل از دست زدن به functions.php از سایت بکاپ بگیرید. یه کاراکتر اشتباه توی این فایل کافیه که کل سایت سفید بشه.

بازنشانی پیوندهای یکتا بعد از افزودن کد

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

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

ذخیره تنظیمات در پیوند یکتا
ذخیره تنظیمات در پیوند یکتا

مزایا و معایب روش کدنویسی نسبت به افزونه

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

ریدایرکت آدرس‌های قدیمی برای جلوگیری از خطای ۴۰۴

خب، این بخش رو جدی بگیرید.

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

راه‌حل: آدرس‌های قدیمی رو ریدایرکت کنید به جدیدها.

نصب و راه‌اندازی افزونه Redirection

افزونه‌ی Redirection رو نصب و فعال کنید. بعدش برید به Tools (ابزارها). اولین بار یه ویزارد خوشامدگویی بهتون نشون می‌ده. می‌تونید مرحله‌به‌مرحله دنبالش کنید یا اگه می‌خواید خودتون دستی تنظیم کنید، روی لینک نصب دستی کلیک کنید.

افزونه ریدایرکت
افزونه ریدایرکت

ایجاد ریدایرکت برای یک نویسنده خاص

توی صفحه Redirection اسکرول کنید پایین تا به بخش Add new redirect برسید.

توی فیلد Source URL آدرس قدیمی صفحه نویسنده رو بذارید و توی Target URL آدرس جدید رو. بعد Add Redirect رو بزنید. همین. از این به بعد هرکی آدرس قدیمی رو باز کنه، خودکار می‌ره به آدرس جدید.

نحوه ریدایرکت صحیح
نحوه ریدایرکت صحیح

ریدایرکت پویا و گروهی با الگو

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

فرض کنید Base رو از author به contributor تغییر دادید. تنظیمات این‌جوری می‌شه:

منبع:

https://example.com/author/(.*)$

هدف:

https://example.com/contributor/$1

اون (.*) هرچی بعد از author بیاد رو می‌گیره و $1 همون رو عیناً می‌ذاره توی آدرس جدید. یعنی با یه قانون، کار همه‌ی نویسنده‌ها یه‌جا راه می‌افته. فقط یادتون باشه گزینه‌ی Regex رو موقع ساخت این ریدایرکت فعال کنید.

و اگه برای هر نقش کاربری یه Base جدا تعریف کرده بودید، باید برای همه‌ی اون نقش‌ها هم همین کار رو جداگانه تکرار کنید.

غیرفعال کردن کامل صفحه آرشیو نویسنده در سایت‌های تک‌نویسنده

یه سناریوی دیگه هم هست که شاید اصلاً وضعیت شما باشه.

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

مشکل محتوای تکراری

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

غیرفعال‌سازی با رنک‌مث یا یواست سئو

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

غیرفعال‌سازی با رنک‌مث
غیرفعال‌سازی با رنک‌مث

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

noindex کردن صفحات نویسنده و حذف از نقشه سایت

حالا یه حالت بینابین هم هست. شاید بگید «نه، ما صفحه نویسنده رو لازم داریم، ولی نمی‌خوایم توی گوگل باشه.» مثلاً سایتتون چند نویسنده داره و می‌خواید کاربرها بتونن مطالب هر نویسنده رو ببینن، ولی این صفحات توی نتایج جستجو ظاهر نشن.

راه‌حلش noindex کردنه. توی تنظیمات یواست سئو (یا رنک مث) وضعیت ایندکس صفحات نویسنده رو روی noindex بذارید. با این کار به ربات گوگل می‌گید: «لینک‌های داخل این صفحه رو دنبال کن و مقاله‌ها رو ببین، ولی خودِ این صفحه رو توی نتایج نشون نده.»

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

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

تغییر اسلاگ نویسنده به سئوی سایت آسیب می‌زند؟

اگه ریدایرکت درست انجام بدید، نه. آسیب زمانی وارد می‌شه که آدرس‌های قدیمی ایندکس‌شده رو رها کنید و همه‌شون بشن ۴۰۴. پس تغییر بدید، ولی حتماً ریدایرکت رو هم انجام بدید.

آیا بدون افزونه هم می‌شود Slug هر کاربر را تغییر داد؟

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

بعد از تغییر Base، لینک‌های قدیمی چه می‌شوند؟

تا وقتی ریدایرکت نذاشتید، ۴۰۴ می‌شن. با یه ریدایرکت پویا (همون روش Regex بالا) کل ماجرا با یه قانون حل می‌شه.

بهترین جایگزین برای کلمه author چیست؟

هرچی که به سایتتون بخوره، مثل profile، nevisande، team یا contributor. فقط سعی کنید یه کلمه‌ی ثابت انتخاب کنید و مدام عوضش نکنید، چون هر بار تغییر یعنی یه دور ریدایرکت جدید.

جمع‌بندی

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

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

اگه سؤالی براتون پیش اومد یا جایی گیر کردید، توی کامنت‌ها بپرسید. شاد و سربلند باشید. 🙂

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

  1. U10840۲۹ آبان ۱۴۰۱

    سلام جناب راد عزیز
    میخواستم بدونم در مورد متای نویسنده که پایین یا بالای مقاله نمایش داده میشه من از شما پیروی کردم و مخفیش کردم چون شما قبلا استفاده میکردید چون با این افزونه ریدایرکت ۳۰۱ به صفحه اول میشد که عده ای میگویند تمام مطالب ریدایرکت به صفحه اصلی بشه خوب نیست
    مطالبم به اندازه یک سایت افت کرده میخواستم بدونم کار اشتباهی کردم بهتر نیست به حالت قبل برگردونم یا مخفی نگه دارم و صبر کنم تا مجدد رتبه میگیره ؟

    ممنون میشم خودتون پاسخ بدید

    • رضا راد۷ آذر ۱۴۰۱

      سلام منظور شما آرشیو نویسنده ها هست؟ اگر بله مشکلی نداره غیرفعال بمونه حل میشه. اگر منظور شما اطلاعات نویسنده بالا یا پایین مقالات هست این مورد تاثیری توی سئو نداره.

  2. U10840۱۶ آبان ۱۴۰۱

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

    • رضا راد۲۳ آبان ۱۴۰۱

      سلام افزونه با نسخه php 8 سازگاری نداره و باید آپدیت بشه

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

    با سلام

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

    با تشکر.

    • رضا راد۲۶ بهمن ۱۳۹۶

      درود باید کدنویسی رو ویرایش کنید و لینک رو از روی اسم بردارید

      • U11047۲۶ بهمن ۱۳۹۶

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

        http://uupload.ir/files/tld_20.png

        • رضا راد۲۷ بهمن ۱۳۹۶

          سلام بخش php author posts link را حذف کنید

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

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

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