استانداردهای کدنویسی وردپرس چیست
استانداردهای کدنویسی وردپرس؛ قواعد نامگذاری، ساختار و مستندسازی با مثال.
«کد تمیز» در وردپرس، یک مفهوم شخصی نیست؛ مجموعهای از قواعد مشخص است که جامعهٔ وردپرس روی آنها توافق کرده. تجربهام: رعایت این استانداردها، نه یک تجمل حرفهای که نیاز واقعی هر پروژهای است که قرار است بیش از شش ماه عمر کند. کدی که استاندارد را رعایت نکند، در بازبینی تیمی رد میشود، در آپدیتها دردسر میسازد، و در انتقال به توسعهدهندهٔ دیگر، تبدیل به پروژهٔ بازنویسی میشود. این مقاله، استانداردهای کدنویسی وردپرس را از پایه باز میکند: سه دستهٔ اصلی قواعد، با مثال، و چرایی هرکدام. اگر با مفاهیم پایه آشنا نیستید، توسعهٔ وردپرس چیست و شروع اصولی کدنویسی وردپرس را ببینید.
چرا استاندارد مهم است؟
سه دلیل عملی: یک — همکاری تیمی. وقتی همهٔ اعضای تیم با یک استاندارد کار میکنند، هرکس میتواند کد دیگری را بخواند. تجربهام: در پروژهای با چهار توسعهدهنده، رعایت استاندارد، زمان بازبینی کد را از چند ساعت به چند دقیقه کاهش داده. دو — نگهداری بلندمدت. کدی که سه سال بعد هم قابل خواندن و تغییر باشد، استاندارد را رعایت کرده. سه — کاهش باگ. بخش قابلتوجهی از باگها از بینظمی میآید: تابع تکراری، متغیر سراسری، کد قطور. تجربهام: تیمهایی که استاندارد را رعایت میکنند، در طول سال، ۳۰٪ کمتر باگ ثبتشده دارند. یک دلیل چهارم که کمتر دیده میشود: استاندارد، در پروژههایی که قرار است بین توسعهدهندگان دستبهدست شوند، ارزش واقعی خودش را نشان میدهد. کدِ استاندارد، در انتقال، هفتهها آموزش و آشنایی را صرفهجویی میکند.
استاندارد، برای رباتها نیست؛ برای انسانی است که سه سال بعد، همان کد را میخواند.
دستهٔ اول: نامگذاری
نامگذاری، سادهترین و مهمترین بخش استاندارد است. قواعد اصلی: یک — پیشوند یکتا برای توابع و کلاسها. هر افزونه یا قالب، پیشوند اختصاصی دارد. مثال: توابع قالب «آسترا» با astra_ شروع میشوند؛ افزونهٔ «WooCommerce» با wc_ یا woocommerce_. چرا؟ چون فضای نام PHP سراسری است و در نبود پیشوند، تعارض حتمی است. دو — سبک نامگذاری: توابع و متغیرها با snake_case (my_function)، کلاسها با Class_Name یا My_Class، ثابتها با MY_CONSTANT. سه — نام معنادار: $data بد است، $user_query_result خوب است. تجربهام: در پروژهای که کدِ جانشینانِ من بود، نامگذاریِ معنادار، سرعت دیباگ را دو برابر کرده بود.
دستهٔ دوم: ساختار کد
پنج قاعدهٔ ساختاری: یک — توابع کوچک با مسئولیت واحد. هر تابع، یک کار مشخص انجام دهد. تابعی که بالای ۵۰ خط است، نشانهٔ این است که باید شکسته شود. دو — پرهیز از تکرار. اگر یک قطعه کد را دو جا نوشتید، احتمالاً باید در یک تابع مشترک باشد. سه — جداسازی منطق از نمایش. منطق کسبوکار در کلاسها، نمایش در فایلهای template. چهار — جدا کردن admin از public. کد پیشخوان و فرانتاند در فایلهای مجزا. پنج — مدیریت وابستگی با autoloader. بهجای require_onceهای پراکنده، از Composer یا autoloader دستی استفاده کنید. الگوی دقیق در ساختار فایلهای افزونهٔ استاندارد و ساختار فایلهای قالب استاندارد.
دستهٔ سوم: مستندسازی
مستندسازی، مهارت پنهانی است که پروژههای حرفهای را از آماتور جدا میکند. سه سطح: یک — مستندسازی فایلی: در ابتدای هر فایل، توضیح دهید این فایل چه کاری انجام میدهد. دو — مستندسازی تابعی: با PHPDoc، پارامترها، بازگشتی، و هدف تابع را مستند کنید. سه — کامنتهای درونخطی: فقط برای توضیح «چرا»، نه «چه». الگوی PHPDoc استاندارد:
/**
* دریافت اطلاعات کاربر بر اساس ایمیل
*
* @param string $email ایمیل کاربر
* @return WP_User|false کاربر در صورت وجود، false در صورت نبود
*/
function my_plugin_get_user_by_email( $email ) {
return get_user_by( 'email', sanitize_email( $email ) );
}
تجربهام: کدی که سه سال پیش نوشتهام و PHPDoc ندارد، در بازبینی جدید، خواندنش زمانبر است. کدی که PHPDoc دارد، در چند دقیقه قابل فهم میشود. این تفاوت، در طول عمر پروژه، جمع میشود.
استانداردهای PHP وردپرس
استانداردهای PHP وردپرس، مبتنی بر استانداردهای عمومی PHP با چاشنی وردپرس است. مهمترین قواعد: یک — تگ باز/بسته: همیشه از <?php کامل استفاده کنید، نه <?. برای فایلهای کاملاً PHP، تگ بسته را در انتهای فایل حذف کنید (جلوگیری از خطای header). دو — indent: از tab استفاده کنید، نه space (استاندارد وردپرس). سه — فاصلهها: برای function و control structure، فاصلهٔ استاندارد (function my_func() {). چهار — یoda conditions: در مقایسهها، متغیر را بعد از ثابت بنویسید (if ( true === $var )) — دلیلش، جلوگیری از اشتباهِ = بهجای ==. پنج — استفادهٔ صحیح از elseif، نه else if. استانداردهای کامل در مستندات رسمی وردپرس (developer.wordpress.org/coding-standards).
استانداردهای JavaScript
استاندارد جاوااسکریپت وردپرس، مبتنی بر jQuery coding standards و ES6 است. سه قاعدهٔ مهم: یک — استفاده از var در پروژههای قدیمی، let/const در جدید. استاندارد وردپرس رسماً با ES6 سازگار است. دو — فاصلهگذاری: در تابعهای ناشناس، فاصلهٔ استاندارد (function() {). سه — استفاده از wp_localize_script برای پاس دادهٔ PHP به JS. این، استاندارد امن برای ارسال داده از سرور به مرورگر است. الگوی دقیق در افزودن کد سفارشی به وردپرس.
استانداردهای CSS
استاندارد CSS وردپرس، شامل: یک — انتخابگرها با خط تیره. (.my-class-name)، نه camelCase. دو — indent با tab. سه — یک property در هر خط. چهار — ترتیب الفبایی برای propertyها. ترتیب الفبایی، در پروژههای بزرگ، پیدا کردن property را سریعتر میکند. پنج — کامنتگذاری بخشها. هر بخش CSS (هدر، فوتر، فرم) را با کامنت جدا کنید. الگوی تکمیلی برای RTL در آمادهسازی قالب برای فارسی.
استانداردهای HTML و دسترسپذیری
استاندارد HTML در وردپرس، همراه با اصول دسترسپذیری است. پنج قاعدهٔ کلیدی: یک — استفاده از تگهای سمنتیک. <header>، <nav>، <main>، <article>، <aside>، <footer>. دو — ترتیب منطقی heading: هر صفحه یک <h1>، سپس <h2>، <h3> بدون پریدن. سه — alt برای تصاویر. چهار — label برای فرمها. پنج — ARIA فقط وقتی لازم است، نه همیشه. راهنمای تکمیلی در HTML سمنتیک و WCAG چیست.
ابزارهای بررسی استاندارد
سه ابزار اصلی: یک — PHP_CodeSniffer با ruleset وردپرس: استاندارد رسمی که توسط تیم وردپرس نگهداری میشود. با Composer نصب میشود و از خط فرمان اجرا. دو — Theme Check و Plugin Check: افزونههای رسمی برای بررسی استاندارد قالب و افزونه. سه — ESLint با پیکربندی وردپرس: برای جاوااسکریپت. تجربهام: اجرای این ابزارها در CI (چرخهٔ یکپارچگی مستمر)، یکی از کمهزینهترین کارهایی است که کیفیت پروژه را بالا میبرد. راهنمای تکمیلی در تشخیص قالب استاندارد و تست و دیباگ پروژههای وردپرس.
دید مهندسی: استاندارد بهعنوان معماری
برای توسعهدهندههای سطح بالا، رعایت استاندارد، فراتر از قواعد نحوی است؛ به معماری کد وصل میشود. سه الگو: یک — Consistency بهعنوان اصل معماری. در یک پروژه، همهچیز باید یک الگو داشته باشد: همان روش خطاگیری، همان روش مدیریت خطا، همان روش نامگذاری. پروژهای که نیمی procedural است و نیمی OOP، نگهداریاش دوبرابر هزینه دارد. دو — Standards as Documentation. وقتی کد استاندارد است، خودش مستند است. تابع با نام معنادار و PHPDoc، به کامنت اضافه نیازی ندارد. سه — Refactoring as Ongoing Practice. استاندارد، وضعیت یکبار برای همیشه نیست؛ هر بار که کدی را میخوانید و میبینید استاندارد نیست، همان لحظه اصلاحش کنید. تجربهام: در پروژههای سهساله، تیمهایی که «بازسازی مداوم» را عادت کردهاند، در پایان سال سوم، کدشان سالمتر از تیمهایی است که «بعداً بازسازی میکنیم» را انتخاب کردهاند. استاندارد، بیمهٔ بلندمدت پروژه است، نه مالیات کوتاهمدت.
جمعبندی
استانداردهای کدنویسی وردپرس در سه دسته خلاصه میشوند: نامگذاری، ساختار، و مستندسازی. ابزارهای بررسی، رعایت این استانداردها را آسان میکنند. اگر امروز فقط یک کار میکنید: به آخرین تابعی که نوشتهاید نگاه کنید و ببینید آیا سه قاعدهٔ نامگذاری (پیشوند، سبک، معناداری) را رعایت کرده. اگر نه، همان لحظه اصلاحش کنید. تجربهٔ خودتان از یک پروژه که استاندارد رعایت شد یا نشد، در دیدگاهها ارزشمند است. ✍️