تماس با مشاورین: ۰۹۳۵۸۵۱۰۰۹۱

بطور کلی هسته ی وردپرس (WordPress) شامل سه پوشه زیر هست:

  1. پوشه wp-includes که شامل کلاس ها و توابع اصلی هسته ی وردپرس می باشد به طوری که عملکردهای پایه ای وردپرس مثل مکانیزم پایگاه داده ، نحوه ی اجرای قالب و . در این بخش برنامه نویسی شده اند.
  2. پوشه ی wp-admin که شامل تمامی توابع مربوط به بخش مدیریت وردپرس می باشد چنانچچه دقت کنید زمانی که در صفحات مدیریت وردپرس هستید همواره فایل های PHP در این پوشه هستند که فراخوانی می شوند
  3. پوشه ی wp-content که موضوع بحث امروز ما میباشد و شامل فایل ها و محتواهای وب سایت شما میباشد مانند افزونه های نصب شده ، قالب ها و پوشه هار ترجمه و کش وب سایت.

ساختار پوشه های وردپرس و نحوه ی تغییر آن ها

تفاوت دو سایت وردپرسی در چیست؟

تعریف دقیق هسته ی وردپرس یعنی فایل ها و پوشه های وردپرس که ما تحت هیچ شرایطی اجازه تغییر در آن ها را نداریم که شامل پوشه های wp-admin و wp-includes به همراه تمامی فایل های PHP که در ریشه ی رودپرس قرار دارند.پس اگر بخواهیم تفاوت دو وب سایت وردپرسی را بیان کنیم موارد زیر هست:

  1. پوشه ی wp-content یعنی قالب و افزونه هایی که هر سایت مختص به خود را دارد
  2. پایگاه داده (MySQL) که در آن مطالب و محتویات سایت شما گنجانده شده است
  3. فایل wp-config.php که مربوط به تنظیمات پایگاه داده وب سایت شما می باشد.

وردپرس به ما اجازه ی تغییر در ساختار پوشه های wp-content را به شکل کاملا استاندارد داده است به ویژه برای افزایش امنیت وردپرس می توانیم این فولدر ها را تغییر نام و یا حتی جابه جایی مکان به صورت کامل دهیم.

ثابت سازی آدرس وب سایت وردپرس

برای شروع ابتدا فایل wp-config.php وردپرس خود را باز کنید ، چون ما قرار هست قوانین را در این فایل به شکل کامل تعریف کنیم.اگر با وردپرس آشنا باشید یکی از اصلی ترین تنظیمات همگانی وردپرس مربوط به آدرس وب سایت می باشد که از بخش تنظیمات و زیر منوی عمومی همیشه آن ر تغییر می دهیم.

تغییر آدرس وب سایت وردپرس در تنظیمات عمومی

اگر دقت کنید می توانید به راحتی این فیلد را ویرایش کنید ، این بدان معنا هست که وردپرس در هر بار لود شدن صفحات این آدرس را از پایگاه داده که در جدول wp_options هست فراخوانی می کند ، حال برای ثابت کردن این آدرس به شکلی که همواره از فایل wp-config.php بدون معطلی فراخوانی شود این دو ثابت را به فایل wp-config.php اضافه می کنیم:

define('WP_HOME', 'https://realwp.net');
define('WP_SITEURL', 'https://realwp.net');

اگر فایل را ذخیره کنید و این بار به صفحه تنظیمات عمومی وردپرس بروید ، خواهید دید که دیگر این فیلد ها قابل ویرایش نیست. این بدان معنا هست که وردپرس از این به بعد همین مقادیر را به عنوان ثابت و آدرس وب سایت در نظر می گیرد.ما از این آدرس در موارد بعدی کاملا استفاده خواهیم کرد.
پیشنهاد می شود مقاله ویرایش فایل wp-config.php را در وب سایت رسمی وردپرس که در بخش مستندات هست را مطالعه کنید.

تغییر نام پوشه wp-contentدر وردپرس

برای تغییر نام پوشه wp-content ابتدا از بخش File Manager هاست خود آن را به نام دلخواه (انگلیسی) تغییر دهید ، من همیشه در برنامه نویسی وردپرس و پروژه ها آن را به نام public تغییر می دهم . حال میبایست وردپرس را از این تغییر مطلع کنیم. برای این کار دو ثابت جدید به فایل wp-config.php اضافه می کنیم:

define('WP_CONTENT_URL', WP_SITEURL . '/public');
define('WP_CONTENT_DIR', ABSPATH . '/public');

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

  1. ابتدا توسط ثابت WP_CONTENT_URL وردپرس را متوجه آن کردیم که از این پس تمامی آدرس های wp-content باید به public برای ما تغییر پیدا کنند ، در مقدار دهی آن نیز از WP_SITEURL استفاده کردیم.
  2. ثابت WP_CONTENT_DIR نیز آدرس فایل دهی سیستمی که برای PHP و اجرای عملیات آن نیاز هست هم به public تغییر پیدا کرد. دقت کنید ثابت ABSPATH در پایان فایل wp-config.php که اشاره به ریشه وردپرس دارد خودش تعریف شده است.

تغییر نام پوشه افزونه یا پلاگین (plugins) در وردپرس

به صورت پیش فرض پوشه plugins در داخل فولدر wp-content در وردپرس قرار دارد ، اما بهتر است کلا این پوشه را از داخل آن جدا کنیم و به ریشه وردپرس ببریم علت آن هم کم تر شدن آدرس دهی فایل ها می باشد که در بحث render شدن HTML و در نهایت افزایش سرعت وب سایت وردپرسی تاثیر فراوانی دارد. من طبق عادت این پوشه را در قسمت ریشه وردپرس انتقال می دهم و نام آن را addons می گذارم.
برای فهماندن این موضوع به وردپرس نیز مانند بالا وردپرس سه ثابت در اختیاز ما قرار داده است که در فایل wp-config.php قرار می دهیم:

define('WP_PLUGIN_DIR', ABSPATH . '/addons');
define('PLUGINDIR', ABSPATH . '/addons');
define('WP_PLUGIN_URL', WP_SITEURL . '/addons');

اگر دقت کرده باشین برای آدرس دهی مسیر فایل در افزونه وردپرس دو ثابت WP_PLUGIN_DIR و PLUGINDIR هست. این بخاطر تغییر در نسخه های جدید وردپرس هست یعنی وردپرس به یادگار و برای عدم تداخل در نسخه های قدیمی همچنان این ثابت دوم رو نگه داشته ما هم به قوانین آن احترام میگذاریم.

تغییر نام پوشه افزونه های جایگزین یا MU-Plugin در وردپرس

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

افزونه وردپرس حتما بخوانید : انواع افزونه وردپرس و دلیل پیدایش ساختار آن ها در هسته وردپرس

فولدر mu-plugins هم در ساختار پوشه های وردپرس در درون wp-content قرار داد .من طبق عادت این پوشه را به config تغییر می دهم و آن را در ریشه ی وردپرس Cut می کنم ( فولدر wp-content بیرون می آورم ). برای افزونه های جایگزین نیز وردپرس در هسته ی خود سه ثابت به ما معرفی کرده که آن را در فایل wp-config.php قرار می دهیم:

define('WPMU_PLUGIN_URL', WP_SITEURL . '/config');
define('WPMU_PLUGIN_DIR', ABSPATH . 'config');
define('MUPLUGINDIR', 'config');

تغییر نام پوشه رسانه ها Uploads در وردپرس

تمامی فایل هایی که به عنوان رسانه اعم از تصویر یا ویدیو که در وردپرس بارگزاری (upload) می کنید ، در پوشه wp-content/uploads قرار میگیرند ، حال چقدر خوب می شد که از همه ی آدرس ها این عبارت wp-content را برداریم و خروجی HTML ما تمیز تر و سرعت بالا برود .من برای پروژه ها فولدر uploads را از ین پوشه به بخش ریشه ی وردپرس منتقل می کنم و نام آن را هم به storage تغییر می دهم. برای آگاهی وردپرس از این تغییر نیز کافی هست این ثابت را اضافه کنیم:

define('UPLOADS', 'storage');

چه بلایی سر آدرس های رسانه های قبلی می آید؟

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

افزونه تغییر آدرس لینک در دیتابیس وردپرس

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

https://realwp.net/wp-content/uploads/

و حال در قسمت Replace with نیز متد آدرس جدید را قرار می دهیم:

https://realwp.net/storage/

به همین راحتی بعد از اجرای دستور تمامی لینک ها جایگزین می شوند. اگرچه ربات های گوگل بسیار هوشمند شدن در زمنیه ی تغییر آدرس ها T ولی میتونید این کد هم در فایل functions.php قالب خودتون بزارید برای بحث ریدایرکت صحیح رسانه ها به آدرس جدید:

add_action('template_redirect', function() {

	$request_uri = $_SERVER['REQUEST_URI'];
	if (strpos($request_uri, '/wp-content/uploads/') === 0) {
		$new_url = str_replace('/wp-content/uploads/', '/storage/', $request_uri);
		wp_redirect(home_url($new_url), 301);
		exit;
	}
});

دقت کنید ویرایشگر گوتنبرگ چون با شناسه ی رسانه ها سر کار دارد ، حتی فکر این بخش هم کرده بود و با هر تغییری در فولدر هیچ مشکلی برای سایت شما ایجاد نمی شود 🙂

ایجاد پوشه جدید برای قالب های وردپرس

اگر به عنوان این بخش دقت کنید کلمه تغییر فولدر قالب را مشاهده نکردید !!! کاملا درست هست. وردپرس اجازه ی تغییر نام پوشه قالب ها که در آدرس wp-content/themes هست را توسط ثابت ها نمی دهد و این بر اساس مکانیزم هسته ی رودپرس می باشد. اما توسط توابع PHP امکان افزودن یک پوشه جدید برای مکان قالب های وردپرس کاملا امکان پذیر هست.

این کار بهتر است در Mu-Plugins ها انجام شود ، تا قبل از بارگزاری افزونه ها ، وردپرس از این امر کامل مطلع شده باشد. فرض کنید می خواهیم یک پوشه به نام template در ریشه ی وردپرس ایجاد کرده و آن معرفی کنیم. ابتدا در فولدر mu-plugins های خود یک فایل php به نام theme-dir.php ایجاد و سپس کد زیر را در آن قرار می دهیم:

register_theme_directory(ABSPATH . '/template');
add_filter('theme_root', function () {
    return ABSPATH . '/template';
});
add_filter('theme_root_uri', function () {
    return home_url('template');
}, 10, 1);

در این کد ابتدا یک پوشه جدید برای قالب ها توسط تابع register_theme_directory ایجاد کردیم سپس توسط هوک وردپرس ، مقدار آدرس دهی اصلی فولدر های قالب وردپرس را به پوشه template تغییر دادیم.

اگر تمامی تنظیمات را به درستی انجام داده باشید الان پوشه های وردپرس بدین شکل برای شما تغییر کرده اند:

ساختار جدید پوشه های وردپرس

ساختار بندی سریع پوشه در پروژه های وردپرس با WP-CLI

اگر در دوره جامع مدیریت وردپرس با خط فرمان یا WP-CLI که در سایت وردپرس واقعی وجود دارد شرکت کرده باشین ، ما توسط WordPress Package Management ها در همان ابتدای پروژه این ساختار را به راحتی تعریف می کنیم و نیازی به ویرایش دستی فایل wp-config.php نیست ، پیشنهاد میکنم اگر با این تکنولوژی آشنایی ندارید حتما در این دوره شرکت کنید.

ایجاد پروژه جدید وردپرس در wp-cli

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

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

    اتصال دو طرفه بخش انبارداری یا محصولات و فاکتور های نرم افزار حسابداری سپیدار از شرکت همکاران سیستم با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول ، ایجاد فاکتور های اتوماتیک به نام مشتریان وردپرس در نرم افزار حسابداری
    ۳۸,۰۰۰,۰۰۰ ۲۴,۷۶۰,۰۰۰ تومان

    اتصال نرم افزار حسابداری راهکاران همکاران سیستم به افزونه فروشگاه ساز ووکامرس

    اتصال دو طرفه بخش انبارداری یا محصولات ، مشتریان و فاکتور های نرم افزار حسابداری راهکاران از شرکت همکاران سیستم با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول ، ایجاد فاکتور های اتوماتیک به نام مشتریان وردپرس در نرم افزار حسابداری
    ۵۶,۰۰۰,۰۰۰ ۳۸,۴۰۰,۰۰۰ تومان

    اتصال نرم افزار حسابداری هلو به افزونه فروشگاه ساز ووکامرس به همراه پکیج وب سرویس دو طرفه

    اتصال دو طرفه بخش انبارداری یا محصولات ، مشتریان و فاکتور های نرم افزار حسابداری هلو با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول ، ایجاد فاکتور های اتوماتیک به نام مشتریان وردپرس در نرم افزار حسابداری
    ۲۵,۰۰۰,۰۰۰ ۱۸,۳۴۰,۰۰۰ تومان

    اتصال یک یا چند پنل فروشندگان دیجی کالا به افزونه فروشگاه ساز ووکامرس

    اتصال و هماهنگی بخش محصولات ، و سفارشات پنل فروشندگان دیجی کالا با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول و مدیریت لیست سفارشات دیجی کالا در مدیریت وردپرس
    ۲,۸۰۰,۰۰۰ ۲,۴۳۰,۰۰۰ تومان

    اتصال استاندارد رسانه های وردپرس ، فایل های ووکامرس ، EDD و گرویتی فرم به هاست دانلود

    افزایش هشتاد درصدی سرعت وب سایت های وردپرس با اتصال تصاویر ، ویدیو ، صوت و فایل های فروشگاه ووکامرس ، Easy Digital Downloads و گرویتی فرم به هاست دانلود با قابلیت تغییر لینک اتوماتیک رسانه ها در محتوا و محافظ از سرقت فایل فروشی
    ۲,۰۰۰,۰۰۰ ۱,۸۷۰,۰۰۰ تومان

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

    اتصال و یکپارچه سازی اطلاعات کامل محصولات (متغیر ، ساده ، خارجی و ..) ، مدیریت لیست سفارشات بین یک یا چند فروشگاه ووکامرسی با قابلیت وب هوک و ثبت تغییرات آنی و ایجاد عملیات گروهی ثبت یا ویرایش محصولات بین سایت ها در سریع ترین زمان
    ۴,۸۳۰,۰۰۰ ۲,۶۴۰,۰۰۰ تومان
    آکادمی وردپرس واقعی

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

    در دوره جامع WP-CLI یاد خواهید گرفت، به شکل کاملا حرفه ای و با سرعت بیش تر یک یا چند وب سایت وردپرسی خود را مدیریت کنید.عملیات تکراری در مدیریت وردپرس را برای کاهش هدر رفت زمان خود سیستم سازی کنید. وردپرس شما در حین کار با خط فرمان فشار کم تری به سرور ایجاد می کند و این رویکرد می تواند وب سایت شما را بدون نقص و با سرعت عالی ارائه دهد
    • محتوای آموزشی: ۴۶ جلسه آموزشی شامل ۱۶ ساعت ویدیو آموزشی به همراه تمرینات و فایل PDF خلاصه محتوا
    • پروژه عملی دوره: نصب و مدیریت کامل بخش های یک استارتاپ وردپرس در هاست
    • کلاس رفع اشکال: کلاس آنلاین ۳۰ دقیقه ای در پایان دوره به صورت کاملا خصوصی با استاد درزی برای تثبیت محتوا و رفع اشکالات دانشجو
    ۳,۶۹۷,۰۰۰ تومان