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

افزونه های وردپرس و قالب ها ، دو بخش اصلی برای توسعه هسته ی وردپرس می باشند. آقای Brian Messenlehner (توسعه دهنده وردپرس) در کتاب Building Web Apps with WordPress بیان نموده است که می بایست سیستم WordPress را همانند یک فریم ورک زبان PHP نگاه کرد ، ن فقط یک سیستم مدیریت محتوا (CMS) که وظیفه ی انتشار محتوا را دارد.

 

برنامه نویسی شی گرایی یا MVC در وردپرس

اگر بخواهیم مدل صحیح MVC را در وردپرس پیاده سازی کنیم:

  1. بخش View یا همان نمایش که قالب وردپرس هست.
  2. بخش Model ها که می توان آن را به افزونه های وردپرس پیوست داد.
  3. بخش Controller ها که وظیفه ی اصلی آن در کلاس WP_Rewrite  برای بخش وب و کلاس REST API برای وب سرویس وردپرس خلاصه می شود. که ما از آن در  هوک های وردپرس مثل template_include یا template_redirect استفاده می کنیم.

یکی از بزرگترین نقد هایی که بنده به توسعه دهنگان وردپرس می کنم آن هست که ساختار MVC را در کدنویسی افزونه و قالب وردپرس نادیده می گیرند و گاها تمام برنامه نویسی وردپرس و هوک ها را در قالب وردپرس انجام می دهند. این امر کاملا اشتباه هست و می بایست این اعمال در افزونه های وردپرس پیاده سازی شوند. زیرا قالب وردپرس تنها وظیفه ی نمایش را دارد ن نبایست کدهای تحلیلی پروژه را در این بخش قرار داد.

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

سرفصل های محتوا

    افزونه وردپرس چیست ؟

    طبق تعریف رسمی مخزن وردپرس افزونه ها ،پکیج ها یا بسته هایی هستند که می توانیم توسط آن ها امکانات وردپرس را گسترش دهیم.این افزونه ها توسط زبان PHP برنامه نویسی می شوند و برای ساختاری قوی می توان کدهای جاوا اسکریپ (JavaScript) و یا Css را نیز به آن ها ضمیمه کرد. اگر بخواهیم در یک کلمه بگوییم وظیفه اصلی گسترش در هسته رودپرس چیست قطعا میتوان آن را هوک های وردپرس نامید.

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

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

    انواع افزونه های وردپرس از نظر ساختار هسته وردپرس

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

    افزونه وردپرس جایگزین (Drop-ins plugins)

    افزونه های Drop-ins شامل افزونه های پیشرفته ای هستند که به شما این امکان را می دهد قابلیت های اصلی وردپرس را تغییر دهید. اگر تابع get_dropins را در هسته ی وردپرس بررسی کنید خواهید دید که در حال حاضر 12 افزونه Drop-ins در وردپرس تعبیه شده است. که 4 مورد آن تنها مرتبط با حالت وردپرس شبکه ای یا Network می باشد.

    افزونه وردپرس Drop-ins

     افزونه جایگزین Drop-ins در کجای وردپرس قرار میگیرند؟

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

    لیست افزونه های جایگزین Drop-ins

    اتصال به بانک اطلاعاتی دل خواه یا چند دیتابیس در وردپرس با فایل db.php

    بانک اطلاعاتی در وردپرس به صورت پیش فرض MYSQL می باشد. شما توسط این افزونه می توانید کلاس اصلی بانک اطلاعاتی در وردپرس که همان WPDB می باشد را کاملا تغییر دهید. یعنی طبق خواسته خود آن را متصل به انواع بانک اطلاعاتی مثل اوراکل ، Access یا SQL کنید. و یا حتی این امکان را دارید برای پروژه های بزرگ وردپرسی خود از چند دیتابیس به صورت هم زمان استفاده کنید.

    پکیج stuttter/ludicrousdb یکی از معروف ترین پکیج های وردپرس می باشد که توسط آن می توانید وب سایت وردپرس خود را به چند دیتابیس هم زمان متصل کنید.فقط دقت داشته باشید که این تقسیم بندی برای جداول بانک اطلاعاتی ضورت میگیرد.یعنی شما میتوانید جدول wp_posts را در یک بانک اطلاعاتی و جدول wp_users را در بانک اطلاعاتی دیگری قرار دهید. اما نمیتوانید داده های یک جدول را بین دو دیتابیس تقسیم بندی کنید که اصلا هم این امر استاندارد و پذیرفته نیست.

    نمایش خطای اتصال به بانک اطلاعاتی وردپرس با فایل db-error.php

    اگر وردپرس در اتصال به بانک اطلاعاتی دچار مشکلی شود و یا این که شما وارد فایل wp-config.php شوید و یکی از پارامتر هایی که مرتبط با دیتابیس وردپرس هست را مقدار آن را دست کاری کنید خواهید دید که در وردپرس ، با خطای اتصال به بانک اطلاعاتی با عبارت “Error establishing a database connection” مواجه می شوید:

    خطای بانک اطلاعاتی در وردپرس

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

    پوشه افزونه های جایگزین در وردپرس

    و کدهای زیر را در آن کپی کنید:

    <!DOCTYPE html>
    <html lang="fa-IR">
    	<head>
    		<style>
    		body {
    			font:12px tahoma;
    		}
    		.alert {
    			width: 500px;
    			height: 100px;
    			background-color: #ffffff;
    			margin: 25px auto;
    			text-align: center;
    			line-height: 10px;
    			padding-top: 40px;
    			box-shadow: 1px 1px 16px #f3e4e4;
    			border-radius: 15px;
    		}
    		</style>
    		<meta charset="UTF-8">
    		<title>ِDatabase Error!</title>
    	</head>
    	<body>
    		<div class="alert">
    			<p>خطای اتصال با بانک اطلاعاتی رخ داده است</p>
    			<p>لطفا دقایقی دیگر وارد سایت شوید</p>
    		<div>
    	</body>
    </html>

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

    تغییر خطای اتصال به بانک اطلاعاتی وردپرس

    اگر در مدیریت وردپرس به بخش افزونه ها بروید ، خواهید دید که یک سربرگ به نام افزونه های جایگزین اضافه شده است:

    افزونه جایگزین وردپرس

    چندین فایل در مجموعه افزونه های Drop-ins در وردپرس وظیفه تغییر در ظاهر نمایش خطاها در وردپرس را دارند که در زیر لیست شده است:

    نام فایلوظیفه افزونه
    db-error.phpدر زمان خطای بانک اطلاعاتی وررپرس
    maintenance.phpدر زمان این که وردپرس در حالت تعمیر قرار گرفته باشد.
    php-error.phpزمانی که وردپرس با خطای اجرای PHP برخورد کرده باشد.
    fatal-error-handler.phpزمانی که وردپرس در اجرای اسکریپ خطای Error Handler گرفته باشد
    blog-deleted.phpزمانی که در وردپرس شبکه یک بلاگ یا سایت را حذف کنید.
    blog-inactive.phpزمانی که در وردپرس شبکه یک بلاگ یا سایت را غیر فعال کنید.
    blog-suspended.phpزمانی که در وردپرس شبکه یک بلاگ یا سایت را کاملا ساسپند یا مسدود کنید.

    تغییر در عملکرد کش وردپرس توسط افزونه فایل های advanced-cache.php و object-cache.php

    تا بحال اگر یک افزونه کش وردپرس (WordPress Cache) نصب کرده باشید مثل WP Rocket و یا Redis Object Cache . خواهید دید که این افزونه ها دقیقا بعد از فعال سازی این فایل ها را در پوشه wp-content شما ایجاد میکنند.
    بوسیله این دو فایل شما قادر خواهید بود موتور کش وردپرس را به سیستم دل خواه خود تغییر دهید. مثلا افزونه های کش Redis ، این موتور را کاملا استاندارد و مبتی بر سیستم ردیس قرار می دهند.اگر شما قصد دارید یک سیستم کش قدرتمند برای استارتاپ وردپرس خود ایجاد کنید توسط این دو فایل کاملا این امر شدنی و امکان پذیر هست.

    فک نکنم به شخصه پروژه ای بوده باشد که از سیستم کش ، مخصوصا Redis در آن ها استفاده نکرده باشم. چون برای استارتاپ های بزرگ در بستر وردپرس یک امر کاملا الزامی تلقی می شود.فقط دقت کنید حتما می بایست متغیر ثابت WP_CACHE در فایل wp-config.php شما با مقدار true قرار داده شده باشد تا وردپرس به شما اجازه استفاده از این دو فایل را بدهد.

    define('WP_CACHE', true);

    انجام عملکرد دلخواه در زمان نصب وردپرس با فایل install.php

    قابلیت اجرای دستورات PHP خاص در زمان نصب سیستم وردپرس یکی از قابلیت های جالب به شمار می آید.مخصوصا زمانی که شما بخواهید وردپرس را با سیستم های دیگر در ارتباط قرار دهید.توسط فایل install.php شما قادر خواهید بود اسکریپ های خود را برای انجام عملیات خاص در زمان نصب اجرا کنید.

    افزونه وردپرس لازم (Must Used plugins یا mu-plugins)

    افزونه های لازم وردپرس یا mu-plugins ، افزونه هایی هستند که به توسعه دهندگان این قابلیت را می دهند تا افزونه هایی را ایجاد کنند که بصورت پیش فرض فعال هستند و کاربران اجاره حذف یا غیر فعال سازی آن را ندارند.

    افزونه های لازم در کجا هسته وردپرس قرار دارند ؟

    افزونه های لازم در وردپرس به صورت پیش فرض در پوشه wp-content/mu-plugins واقع می شوند. اگر شما هم سایت وردپرسی دارید احتما اینکه این پوشه وجود داشته باشد کم هست اما میتوانید خودتان این فولدر را ایجاد کنید.
    همچنین اگر میخواهید آدرس مسیر پوشه افزونه های ضروری وردپرس را تغییر دهید از متغیر های ثابت WPMU_PLUGIN_DIR و WPMU_PLUGIN_URL استفاده کنید.

    define( 'WPMU_PLUGIN_URL', 'https://realwp.net/config' );
    define( 'WPMU_PLUGIN_DIR', ABSPATH . 'config' );

    من در وب سایت وردپرس واقعی با قرار دادن کدهای بالا ، مسیر افزونه های ضروری را از پوشه wp-content/mu-plugins به config تغییر دادم.

    چرا افزونه های ضروری اهمیت دارد ؟

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

    یک مثلا خیلی ساده آن این است که اگر شما قابلیتی را در وردپرس در بخش mu-plugins غیر فعال کنید ، دیگر پردازش های مرتبط با آن بخش در لابه لای کد های افزونه ها انجام نمی شود. و این یعنی سرعت بالاتر در سیستم.مثلا ویرایش گر Gutenberg را در همان ابتدا غیر فعال میکنم.

    دلیل دوم آن فراگیر بودن افزونه های ضروری می باشد.یعنی دیگر مهم نیست که شما یک وردپرس شبکه (Network) دارید یا یک وب سایت معمولی (Single). افزونه های mu-plugins در هر دو حالت بدون دخالت کاربران سیستم فعال می باشد و هیچ کسی نمی تواند آن را غیر فعال کند مگر اینکه فایل مربوطه از هاست شما حذف شود.

    یک مثال از افزونه Must Used Plugins

    وارد پوشه wp-content شوید و یک فولدر به نام mu-plugins بسازید. می خواهیم افزونه ای را طراحی کنیم که مسیر پیش فرض REST API وردپرس را از site.com/wp-json به site.com/api تغییر دهیم.

    یک فایل با نام change-rest-api-prefix.php ایجاد کنید و کدهای زیر را در آن قرار دهید:

    <?php
    /**
     * Plugin Name: Change WordPress REST APi Prefix Url
     * Plugin URI:  https://realwp.net
     * Author:      Mehrshad Darzi
     */
     
    add_filter( 'rest_url_prefix', 'change_wordpress_rest_api_prefix'); 
    function change_wordpress_rest_api_prefix( $slug ) { 
    	return 'api';
    }

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

    افزونه های لازم یا mu-plugins

    دقیقا مشابه افزونه های جایگزین ، در شکل بالا همان طور که می بینید کاربر اجازه غیر فعال کردن این افزونه را ندارد. حالا اگر به قسمت تظیمات ، پیوند های یکتا بروید و آن را flush rewrite یا روی ذخیره تنظیمات کلیک کنید خواهید که آدرس REST API وردپرس شما به site.com/api تغییر یافته است.

    حتما بخوانید : چگونه در REST API وردپرس ، دسترسی Token برای گسترش استارتاپ ایجاد کنیم ؟

    سوال، اگر چند افزونه لازم mu-plugins در فولدر قرار داده باشیم باز بین آن ها اولویت بارگزاری کدام هست،  یعنی کدام یک زود تر لود می شوند در سیستم وردپرس ؟

    افزونه های لازم بر اساس حروف الفبا انگلیسی بارگزاری می شوند یعنی اگر دو افزونه mu-plugins داشته باشید به نام های backup.php و import.php ابتدا فایل backup.php خوانده می شود و سپس فایل impoert.php.

    لیست افزونه های لازم وردپرس

    اگر تابع get_mu_plugins را در هسته ی وردپرس مشاهده کنید خواهید دید که در آخر توسط تابع uasort بر اساس حروف الفبا فایل ها را لیست و بارگزاری می کند.

    افزونه های عمومی وردپرس Regular plugins

    افزونه های عمومی (Regular) وردپرس ، همان افزونه هایی است که در مخزن افزونه وردپرس قرار دارد و کاربران می توانند براحتی آن ها در وردپرس نصب و استفاده نمایند.این افزونه ها در مرحله ی آخر یعنی بعد از افزونه های جایگزین (Drop-ins) و لازم (mu-plugins) بارگزاری می شوند. و کاربر حداکثر حق دسترسی برای فعال سازی یا غیر فعال کردن و یا حتی حذف آن ها را دارد.

    نصب افزونه وردپرس

    روش نصب افزونه وردپرس

    برای نصب افزونه وردپرس می توان از سه روش استفاده نمود:

    1. روش اول بوسیله خط فرمان وردپرس (WP-CLI) می باشد. شما می توانید با دستور wp plugin install براحتی افزونه خود را نصب و فعال سازی کنید..از جمله ویژگی های این قابلیت نصب چندین افزونه بصورت هم زمان و همچنین مصرف کم منابع هاست که مشکل بسیاری از سایت های وردپرسی هست اشاره نمود.اگر با WP-CLI آشنایی ندارید پیشنهاد میکنم حتما از قافله عقب نمایید و آموزش مدیریت در خط فرمان را در آکادمی وردپرس واقعی تهیه کنید.
    2. روش دوم کافیست در مدیریت سیستم وردپرس وارد بخش افزونه ها شوید ، سپس افزونه ای که می خواهید را جستجو کنید مثلا WooCommerce. سپس روی گزینه نصب کلیک کنید.
    3. روش سوم استفاده از وب سایت مخزن وردپرس هست. ابتدا وارد مخزن افزونه وردپرس شوید. سپس افزونه خود را جستجو کنید و وارد صفحه آن شوید و بصورت دستی فایل زیپ مرتبط با افزونه دانلود کنید. حالا کافیست فایل Zip افزونه را در قسمت بارگزاری افزونه ها وارد نمایید.این روش مخصوصا برای افزونه های غیر رایگان که از lارکت هایی مثل Envato خریداری می شود بسیار پر کاربرد هست.

    افزونه های عمومی وردپرس در کجای هسته وردپرس قرار دارند ؟

    افزونه های عمومی وردپرس بصورت پیش فرض در پوشه wp-content/plugins قرار دارند. این مقدار توسط ثابت های WP_PLUGIN_DIR و WP_PLUGIN_URL در هسته ی وردپرس تعریف شده است. برای تغییر آدرس پیش فرض افزونه های عمومی وردپرس ، کافیست کد زیر را در فایل wp-config.php قرار دهید:

    define ('WP_PLUGIN_URL', 'https://realwp.net/addons');
    define ('WP_PLUGIN_DIR', ABSPATH  . 'addons');
    define ('PLUGINDIR', ABSPATH . 'addons' );

    توسط کدهای بالا مکان افزونه های وردپرس را از wp-content/plugins به پوشه addons تغییر دادیم. فقط دقت کنید فایل ها را حتما انتقال دهید تا با خطا مواجه نشوید.

    ساختار افزونه های عمومی وردپرس

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

    پوشه پلاگین های وردپرس

    تابع get_plugins در هسته ی وردپرس وظیفه شناسایی افزونه ها در این پوشه را بر عهده دارد.
    اگر فایل اصلی PHP هر یک افزونه ها را باز کنید. خواهید دید که دارای سربرگ با فرمت یکسان هستند. این همان اطلاعاتی است که از افزونه ها در صفحه مدیریت افزونه ها نمایش داده می شود.

    به عنوان مثال سربرگ افزونه ووکامرس (WooCommerce) بصورت زیر هست:

    <?php
    /**
     * Plugin Name: WooCommerce
     * Plugin URI: https://woocommerce.com/
     * Description: An eCommerce toolkit that helps you sell anything. Beautifully.
     * Version: 4.4.0-dev
     * Author: Automattic
     * Author URI: https://woocommerce.com
     * Text Domain: woocommerce
     * Domain Path: /i18n/languages/
     * Requires at least: 5.2
     * Requires PHP: 7.0
     */

    شناسایی افزونه های فعال در وردپرس

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

    پاسخ در جدول options وردپرس قرار دارد. یک option_name با نام active_plugins وجود دارد که در آن لیست افزونه هایی که فعال هستند ، بصورت آرایه قرار داده است.

    افزونه های فعال وردپرس در phpmyadmin

    همچنین می توانید توسط تابع get_option این لیست را در وردپرس خود مشاهده کنید:

    add_action('init, 'show_active_plugins');
    function show_active_plugins(){
    	$active_plugins = get_option('active_plugins');
    	var_dump($active_plugins);
    	exit;
    }

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

    گاهی مواقع بدلیل خطایی که در یکی از افزونه های وردپرس ایجاد می شود . ما امکان وارد شدن به بخش مدیریت را نداریم که آن را غیر فعال کنیم.
    برای غیر فعال کردن افزونه های عمومی در این مواقع می توان از همان فیلد active_plugins استفاده نمود. به عنوان مثال اگر می خواهید تمامی افزونه ها را غیر فعال کنید کافی است ابتدا وارد PHPMyAdmin هاست شوید. سپس از جدول wp_options مقدار option_value را برای active_plugins به صورت زیر تغییر دهید:

    a:0:{}

    و یا راه حل ساده تر آن هست که نام فولدر افزونه را تغییر نام دهید. با این کار وردپرس آن را ناشناخته تشخیص داده و از لود صفحه خارج می کند. مثلا اگر خطایی از افزونه ی woocommerce دریافت کرده اید، کافی است وارد فایل منجر هاست شوید سپس از پوشه ی wp-content/plugins نام فولدر woocommerce را به woocommer1 تغییر دهید. براحتی افزونه غیر فعال می شود.

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

    با توجه به راحتی نصب و کار با افزونه های عمومی (Regular) تقریبا تمامی توسعه دهندگان ، برنامه نویسی افزونه وردپرس و محصولات خود را در قالب این نوع افزونه تولید و منتشر می کنند. افزونه های جایگزین و Mu-Plugins ها اکثرا برای سیستم سازی و راهبرد پروژه های استارتاپ وردپرس استفاده می شوند که هر کدام دارای تنظیمات خاص منطبق با نوع پروژه می باشد.
    از آن جا که اقبال افزونه های regular برای کاربران عادی بسیار بیش تر بوده مارکت ها و توسعه دهندگان نیز به سمت آن ها در حرکت هستند.

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

    با یادگیری و تسلط بر افزونه های عمومی (Regular) شما یک وردپرس کار و توسعه دهنده وردپرس خوب می شوید. اما با تسلط بر Mu-Plugins ها و Drop-ins ها شما به یک متخصص تمام عیار تبدیل شد.

    مطلب رو به اشتراک بگذارید
    ۱۴دیدگاه
    در بحث‌‌ پیرامون این مقاله شرکت کنید!
    ارسال دیدگاه
    • avatar

      HA

      دوشنبه ۶ مرداد ۱۳۹۹ ۱۱:۱۲ ب٫ظ

      واقعا عالی بود ممنونم

    • حمزه بوستان

      حمزه بوستان

      یکشنبه ۱۶ شهریور ۱۳۹۹ ۷:۵۸ ب٫ظ

      انصافا مطلب جامعی در بحث پلاگین ها در وردپرسه
      ممنون
      اقای درزی برا تغییر مسیر wp-content و همچنین پلاگین های mu میشه از این DOCUMENT_ROOT استفاده کرد؟

      • مهرشاد درزی

        مهرشاد درزی

        یکشنبه ۲ آذر ۱۳۹۹ ۱۱:۲۰ ق٫ظ

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

    • avatar

      محمدی

      پنجشنبه ۲۱ اسفند ۱۳۹۹ ۵:۲۳ ب٫ظ

      سلام جناب درزی
      مقالات عالی هستن.
      یه سوال؛ مسیر پیش فرض theme ها رو با چه ثابتی میشه تغییر داد؟ اصلا توصیه می کنید؟
      سوال دوم اینکه کلیه ردپاهایی که میتونه وردپرسی بودن سایت رو مشخص کنه چطور میشه از بین برد؟ آیا مقاله ای در این باره دارید یا میتونید معرفی کنید؟

      • مهرشاد درزی

        مهرشاد درزی

        جمعه ۲۲ اسفند ۱۳۹۹ ۱۰:۴۷ ق٫ظ

        مسیر پیش فرض Theme ها بر اساس تابع register_theme_directory قابل اضافه شدن هست. بسیار هم توصیه میکنم که این کار رو انجام بدید فقط برخی از افزونه ها بخاطر Hardcode نوشتن توابع اون ها شاید ، به مشکل برخورد کنید که البته تعدادشون خیلی کمه. در زمینه ی از بین بردن رد پاها شما کافیه 3 مبحث URL ها ، کوکی ها و نشست ها و همچنین Header Response رو در وردپرس کاملا مسلط باشین.
        در حال تهیه یک دوره آموزشی در زمینه ی نکات مهم در طراحی استارتاپ ها برای وردپرس هستم که این مورد هم در ان دوره کامل توضیح داده شده است.

      • avatar

        محمدی

        شنبه ۲۳ اسفند ۱۳۹۹ ۶:۲۳ ب٫ظ

        آقا دم شما گرم. امیدوارم زودتر این مقاله تون آماده بشه. ممنون

    • avatar

      محسن دروگر

      شنبه ۱۵ خرداد ۱۴۰۰ ۱۰:۱۴ ب٫ظ

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

    • avatar

      بهروز

      چهارشنبه ۲۲ دی ۱۴۰۰ ۱۲:۲۹ ب٫ظ

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

      • مهرشاد درزی

        مهرشاد درزی

        پنجشنبه ۲۳ دی ۱۴۰۰ ۹:۱۲ ق٫ظ

        شما میبایست یک Mu-Plugins ایجاد کنید و در آن با توجه به نوع صفحه ای که قرار دادین آپشن activate-plugins رو فیلتر کنید.

    • avatar

      بهروز

      چهارشنبه ۲۲ دی ۱۴۰۰ ۱:۵۶ ب٫ظ

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

      • مهرشاد درزی

        مهرشاد درزی

        پنجشنبه ۲۳ دی ۱۴۰۰ ۹:۱۴ ق٫ظ

        افزونه های Mu-Plugins تنها باید یک فایل در پوشه باشند و ساختارش مثل پوشه ی plugins ها نیست که هر پلاگین در یک فولدر قرار بگیره.
        https://wordpress.org/support/article/must-use-plugins/#Caveats
        در مورد Redis و برنامه نویسی وردپرس دوره هایی در آینده حتما آماده میشه.

    • avatar

      محمد حسین

      دوشنبه ۱۹ دی ۱۴۰۱ ۱۰:۱۰ ب٫ظ

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

      • مهرشاد درزی

        مهرشاد درزی

        سه شنبه ۲۰ دی ۱۴۰۱ ۸:۰۳ ق٫ظ

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

    • avatar

      وردپرس

      شنبه ۲۴ دی ۱۴۰۱ ۱:۲۶ ب٫ظ

      بسیار عالی و کارآمد بود

    آکادمی وردپرس واقعی

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    استعلام سامانه اعتبار سنجی اشخاص حقیقی و حقوقی با کد ملی و شماره همراه در پنل ووکامرس

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

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

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

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

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