استاندارد های کدنویسی در وردپرس
در این فیلم آموزشی، شما با استاندارد های کدنویسی در وردپرس آشنا خواهید شد. شما می آموزید که در هنگام کدنویسی قالب یا کد نویسی پلاگین خود و یا توسعه هسته وردپرس، از چه استانداردهایی باید پیروی کنید.
در ابتدا با این استاندارد های کدنویسی در وردپرس آشنا می شوید. برای این کار مستقیما از سایت رسمی خود وردپرس برای آموزش استفاده کرده ایم.
سپس کار با ابزارهایی همچون PHP_CodeSniffer و نحوه نصب آن را می آموزیم. سپس یاد می گیریم که چگونه از آن در ادیتور PHPStorm استفاده کنیم. سپس با استفاده از آن شروع به استاندارد کردن بخش هایی از کدهای یک پلاگین خواهیم کرد.
در صورتی که بخواهید در پروژه های بزرگ open source مشارکت کنید یا اینکه بخواهید در شرکت های خوب بین المللی فعالیت نمایید، می باید اصول کدنویسی مرتبط با آن را بیاموزید و آن ها را در نوشتن کدهای خود رعایت کنید.
در صورتی که بر روی وردپرس و برنامه نویسی وردپرس فعالیت می کنید، یکی از بهترین بخش ها برای مشارکت، بخش هسته وردپرس و همین طور سایر بخش ها همچون بازنگری theme ها و پلاگین ها می باشد.
برای این کار می باید با اصول استانداردهای کدنویسی در وردپرس آشنا گردید. این اصول شامل رعایت استانداردهای کد نویسی در بخش های زیر است:
علاوه بر مشارکت در پروژه های رسمی وردپرس، شما به عنوان یک برنامه نویس حرفه ای در زمینه وردپرس، می باید استانداردها یا Best Practice های ارائه شده در این زمینه را بدانید و آن را در کدهای خود (در هنگام توسعه پلاگین یا قالب ها) استفاده نمایید.
در صورتی که بخواهید به صورت بین المللی هم در زمینه وردپرس و برنامه نویسی آن فعالیت کنید هم، می باید با اصول این استاندارد ها در کلیه موارد گفته شده آشنا باشید و آن ها را در کدهای خود بکار ببندید.
در واقع رعایت این استانداردها، نشان دهنده بخشی از حرفه ای بودن شما در حوزه خواهد بود.
در آموزش تصویری استانداردهای کدنویسی در وردپرس ، با چه مواردی آشنا خواهید شد؟
فیم آموزش استانداردهای کدنویسی در وردپرس یا WordPress Coding Standard، در مدت زمان تقریبی ۵۳ دقیقه برای شما دوست عزیز و به صورت تصویری تهیه شده است.
در این آموزش به صورت کامل در مورد Best Practice ها در برنامه نویسی وردپرس صحبت خواهیم کرد. در ابتدا با استاندارد های کدنویسی در PHP برای نوشتن کدهای خود در بستر وردپرس آشنا می شویم.
بخش اول شامل نکات بسیار جالبی هست که به صورت تیتر وار در زیر به آن اشاره شده است. پس از آن می آموزیم که با استفاده از ابزارها چگونه می توانیم به نوشتن کدهای استاندارد در بستر وردپرس، سرعت ببخشیم.
با نحوه نصب PHP Code Sniffer آشنا می شویم و همین طور می آموزیم که چگونه از گیت هاب بسته مرتبط با WordPress Coding Standard را بر روی سیستم خود نصب و آن را بر روی PHP_CodeSniffer پیکربندی نماییم.
آموزش کامل دستورات کاربردی گیت در وبمستر وردپرس
ما در چندین بخش به صورت کامل در مورد دستورات گیت، نحوه استفاده از آن ها، دستورات کاربردی در گیت و همین طور نحوه استفاده از آن در PHPStorm ، صحبت کرده ایم. در صورتی که می خواهید به مرجع آموزش گیت و همین طور لیست دستورات کاربردی آن به همراه مثال دسترسی داشته باشید، می توانید از لینک های زیر استفاده نمایید.
سپس تنظیمات مرتبط را بر روی PHPStorm انجام می دهیم و می آموزیم که چگونه از این ابزارها برای سرعت بخشیدن به فرم دادن به کدهای خود به صورت استاندارد، استفاده کنیم.
با استفاده از Inspect Code در PHPStrom بخش هایی از کدهای یک پلاگین را مورد بررسی قرار می دهیم و می آموزیم که چگونه مشکلات آن را برطرف نماییم تا بر مبنای کدینگ استانداردهای وردپرس باشد.
به دلیل طولانی شدن، این ویدئو در سه بخش مختلف تهیه شده است که در ادامه، لینک مربوط به بخش های دوم و سوم نیز در همین مقاله اضافه خواهد شد.
برای اینکه قبل از دیدن ویدئو” استاندارد های کدنویسی در وردپرس ” ، بدانید که در مورد چه مطالبی در این آموزش صحبت شده است، این موارد برای شما به صورت لیست آماده شده است.
نکاتی که در این ویدئوآموزشی به آن ها اشاره می گردد، عبارتند از:
نتیجه گیری برای آموزش استانداردهای کدنویسی در وردپرس
در این آموزش تصویری رایگان در مورد استاندارد های کد نویسی در وردپرس صحبت شد. این استاندارد ها در چهار قسمت کدهای PHP و HTML و CSS و همین طور JavaScript موجود می باشد که در این آموزش فقط به بخش استانداردهای مرتبط با PHP صحبت شد.
در بخش اول در مورد Best Practice ها در زمینه برنامه نویسی در بستر وردپرس صحبت شد. سپس نحوه استفاده از ابزارهای مختلف برای رعایت این استانداردها و سرعت بخشیدن به پروسه کدنویسی در ادیتور مورد بحث قرار گرفت.
در بخش آخر با ابزارهای PHP_CodeSniffer و همین طور WordPress-Coding-standards آشنا شدیم و یاد گرفتیم که چگونه از آن ها در PHPStorm استفاده کنیم. سپس به بررسی و استاندارد سازی یک بخش از کدهای یک پلاگین به صورت نمونه پرداختیم.
ممکن است شما با موارد بیشتری در این حوزه آشنا باشید، که ما فراموش کرده ایم تا آن ها را در این مقاله قرار دهیم.
اگر شما از این موارد آگاه هستید، حتما در بخش نظرات عنوان کنید تا آن را به مقاله “استانداردهای کدنویسی در وردپرس” اضافه کنیم. در ضمن اگر این مقاله را مفید دیدید، حتما آن را به دوستان خود معرفی کرده یا در شبکه های اجتماعی به اشتراک بگذارید.
راهنما برای مطالعه بیشتر:
برای تولید فیلم آموزش بک آپ وردپرس ، از لینک های زیر استفاده شده است که برای مراجعه به آن ها می توانید از لیست زیر استفاده کنید:
راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:
شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:
سلام و وقت بخیر. ببخشید من سر دوراهی به مشکل برخوردم. من در حال حاضر دارم طراحی سایت با کدنویسی رو آموزش میبینم که وقتی وردپرس رو آموزش دیدم دستم برای طراحی یک سایت شخصی سازی شده بازتر باشه. به نظر شما دانش کدنویسی به کیفیت سایتی که با وردپرس طراحی میکنیم کمک میکنه؟یا وردپرس به تنهایی کفایت میکنه؟ممنونم از توجهتون
سلام به شما دوست عزیز
قطعا دانش کد نویسی، باعث خواهد شد در مسیر راه وردپرس، شما کدهای با کیفیت تر نوشته و این باعث بهبود performance سایت شما و همین طور توسعه پذیری بیشتر سایت شما در آینده خواهد شد.
من در یکی از بخش های سایت با نام Php در وردپرس، و در بخش کامنت ها، road map ای که برای WordPress developer شدن رو نیاز دارید، بهش اشاره ای کردم.
در واقع پیشنیاز شیرجه زدن به کدنویسی در وردپرس، عملا تسلط کامل به مباحث Html و css و javascript و php هست. و اگر هم کسی میگه که بدون تسلط به این پیش نیاز ها، می تونید تبدیل برنامه نویسی خوب وردپرس شوید، عملا داره اشتباه میگه.
پس تمامی زحماتی که دارید برای یادگیری می کشید، بعدا به کار شما خواهد اومد (البته باز این نظر شخصی بنده هست)
امیدوارم هر مسیری رو که انتخاب می کنید، بتونید با قدرت بیشتر به راهتون ادامه بدید و به اهداف مد نظر تون برسید.
درود جناب سلطانی عزیز وقت بخیر ، بنده کار اصلیم برنامه نویسی php هستش الان میخواستم بدونم برای اینکه بخوام در پلاگینهای وردپرس تغییرات ایجاد بکنم و یا یه پلاگین جدید بنویسم راهکارتون چیه؟آموزش خاصی پیشنهاد میدید؟البته بنده phpStrom طبق توضیحات شما دانلود و نصب کردم و همه کارهایی که توی این ویدیوی ۵۴ دقیقه ای گذاشته بودین انجام دادم ممنون میشم راهنمایی بکنین تشکر
سلام به شما دوست عزیز
اولین و بهترین منبع، سایت رسمی خود وردپرس در این لینک می باشد.
در صورتی که به کتاب نیز علاقه مند هستید، در بخش کامنت های صفحه آموزش پلاگین نویسی وردپرس، چند کتاب برای دانلود گذاشته ام که می توانید برای شروع از آن ها استفاده کنید.
سپاسگزارم
سلام و خسته نباشید
من یه سایت مدرسه دارم طراحی میکنم میخوام بخشی داشته باشه که دبیر یا مدیر سایت بتونه نمرات دانش اموز را وارد کند سپس دانش آموز در حساب کاربری خود این نمرات را ببیند
چگونه میتوانم این کار را انجام دهم ؟
سلام و عرض خسته نباشید خدمت شما دوست عزیز
برای این کار باید چندین custom post type مختلف تعریف کنید. به نظرم با دو custom post type مثلا teacher و student و همین طور از استفاده از افزونه ای مثل ACF (Advance Custom Fields) می تونید این کار رو به راحتی انجام بدید.
در سال جدید، دوره ای مشابه برای ایجاد قالب های سفارشی در وردپرس را برگزار خواهیم کرد که می تونید در اون شرکت کنید تا با این مفاهیم آشناتر گردید. در صورت نیاز می تونید از توضیحات custom post type در سایت رسمی وردپرس استفاده کنید.
در صورت راهنمایی بیشتر، می تونید در ادامه همین کامنت، سوالات خود را مطرح کنید.
موفق و پیروز و سربلند باشید
سلام
آموزش بسیار خوبی رو ارائه دادید ، بهتون تبریک میگم
آموزش و اجرای WPCS رو به تمامی طراحان تازه کار وردپرس پیشنهاد می کنم ، اگر از ابتدا عادت کنید به استاندارد نویسی ، هم برای خودتون خوبه و هم برای دولوپرهای دیگه که میخوان روی کدتون توسعه بدن
پ ن : با توجه به اینکه تمامی رفرنس های بنده سایت های خارجی است ، شما اولین سایت ایرانی بودید که با عنوان جالب پستتون ، کنجکاوی من و برای مطالعه برانگیختید ! :)
موفق و پیروز باشید
سلام / از طریق درج تصویر لینک ویدئو میدم و راست چین نمایش داده میشه ویدئو. میخام وسط چین باشه. میشه کدی معرفی کنید که حالت وسط چین داشته باشه و کد رو درون صفحه محصول قرار بدم
سلام به شما دوست عزیز
برای این کار نیاز به یادگیری css دارید. دوره css ما حدود چند ماه پیش برگزار شده و ویدئو های آن به زودی در سایت جدید برای عموم علاقه مندان بارگذاری خواهد شد.
در صورتی که می خواهید از آخرین دوره های برگزار شده و نحوه دسترسی آن ها اطلاع یابید، می توانید از فرم موجود در صفحه آموزش php برای دریافت خبر نامه، ایمیل خود را وارد کنید تا در هنگام شروع دوره ها، به اطلاع شما برسد.
سپاسگزارم
با سلام مجدد
ممنون از وقتی که گذاشتین و با حوصله پاسخ دادین.
امکانات resharper در خود phpstorm هست اما یکسری موارد دیگه رو پوشش میده و اون استایل کدنویسی رو ساپورت نمیکنه.
در مورد کد زدن با ورد پرس هم که باید یکم حوصله به خرج بدم.
یه پیشنهاد : رنگ لینک های داخل کامنت هارو با رنگ متفاوت هایلایت کنین. توی سئو سایت تاثیر مثبت داره.(گوگل این مورد رو تشخیص میده)
سلام خدمت شما حسین آقای عزیز
خواهش می کنم، خودم از صحبت در مورد مباحث برنامه نویسی و همین طور تکنیکال و تبادل نظر بسیار لذت می برم، چون فکر می کنم باعث ارتقا سطح آدم میشه.
در مورد resharper ، مرسی که توضیح دادید. در مورد کدنویسی در وردپرس هم، چون خودتون کدنویس هستید، خیلی زود بهش عادت می کنید (مطمئن هستم) فقط یه خورده حوصله میخواد.
در مورد پیشنهاد تون: بعضی بخش ها در سایت خودمون، برای تست های سئو، کارهایی انجام میدیم و بعد از دیدن نتایج بعد از چند ماه، سعی می کنیم اون ها رو در سایت مشتریان پیاده سازی کنیم.
در این مورد هم، مخصوصا، کلیه لینک های بخش کامنت رو، هم رنگ در نظر گرفتیم. از لحاظ UX شما کاملا درست می فرمایید و واقعا باید برای کاربر، لینک به رنگ دیگه ای باشه، اما قصد مون این بود که آیا اگه نباشه، گوگل باهاش مشکلی داره یا نه.
بسیاری از آموزش ها رو، سعی می کنیم خودمون تکرار کنیم تا نتایج رو ببینیم، و جالب اینکه نتایجی که از این آزمایش ها گرفتیم که دقیقا عکس چیزی هست که در آموزش ها موجوده.
مثلا در این همین سایت در یک تست با کیورد استافینگ، تونستیم از یک مقاله که اومد صفحه اول و خط اول، یک صفحه دیگه مون رو، از صفحه ۳ بیاریم صفحه یک (چیزی که میگن جواب نمیده، اما جالب اینکه خیلی جالب جواب داد) البته بعد از گذشت دو ماه، تمامی لینک های داخلی به اون صفحه رو برداشتیم و جالب اینکه اون صفحه رفت صفحه دوم گوگل.
همین طور در مورد استفاده از تگ ها، که الان میگن دیگه ارزشی نداره یا متا دیسکریپشن، الان تو چند صفحه صلی، ما فقط با تگ کردن در مقالات دیگه و بهینه سازی لینک های داخلی، تونستیم صفحه رو بیاریم تو صفحه اول گوگل.
دوباره فکر کنم که توضیحات طولانی شد. در کل خواستم بگم که خیلی از چیزهایی که روی این سایت میذاریم، بیشتر آزمایشی هست چون واقعا خطرناک هست که دفعه اول روی سایت مشتری تست کنیم. میشه گفت خیلی از تکنیک های سئو کلاه خاکستری که سال هاست در وب دپریکیت شده، الان هنوز خیلی راحت در وب فارسی جواب میده.
برای بخش کامنت ها هم، کاملا با شما موافق هستم. فکر کنم قبل عید دوباره به تمامی لینک های رنگ بدیم برای UX بهتر، ولی جالب اینکه که برای ربات گوگل، اصلا فرقی نداشته که لینک های رنگ داشته باشند یا نه، یعنی این طور که فهمیدم، درسته که این جز پارامتر های امتیاز به صفحه هست، اما درجه اهمیتش خیلی بالا نیست.
حتما تا قبل عید، رنگ لینک ها در کامنت رو عوض می کنیم.
مرسی بابت پیشنهادتون خوب تون
با سلام
آیا ابزاری وجود داره تا کدهامون رو خودکار استاندارد سازی کنه؟
چون PHP_CodeSniffer پیشنهاد میده و مثل resharper امکان refactor نداره.
حسین آقای عزیز، سلام مجدد
اگر منظور از استاندارد سازی سازی خودکار، همون reformat کردن کدها به سبکی هست که وردپرس میخواد (براساس WordPress Codding Standards یا مثلا سبک PEAR یا هر مدل دیگه ای)، در داخل همین فیلم در موردش توضیح داده شده. عموما reformat کردن کدها توسط IDE انجام میشه که توضیحاتش رو در فیلم آورده ام. شما کافیه سبکی رو می خواهید مثلا براساس WordPress یا WordPress-Core یا WordPress-Extra یا WordPress-VIP یا WordPress-Doc انتخاب کنید و سپس هنگامی که موس شما در ادیتور مرتبط با یک فایل هست، کلیدهای Ctrl + Alt + L رو بزنید تا کلیه کدهای شما بر اساس Coding standard ای که انتخاب کردید، به صورت خودکار reformat بشه.
بازهم مسلما یک بخش هایی که توسط CodeSniffer پیشنهاد میشه رو هم میشه همون طور که گفتم، مثلا براش CodeBlock ایجاد کرد اما دیگه در داخل توضیحات کد بلاک، توضیحات کوتاه و توضیحات کامل و یا نوع داده یا خروجی متدها، عملا باید توسط برنامه نویس وارد بشه. در مورد نحوه Documentation برای وردپرس هم یک فیلم آموزشی در سایت قرار داده ایم که اگر مایل بودید می تونید از لینک زیر بهش دسترسی داشته باشید:
لینک فیلم آموزشی استانداردهای کامنت گذاری در PHP و وردپرس
اگه منظورتون refactor کردن کدها باشه، من متاسفانه خیلی با resharper کار نکردم اما بازم فکر می کنم که این ابزار هم، تا حدی می تونه به refactor کردن کدها کمک کنه. الان role مرتبط با refactoring در پروژه های بزرگ، عملا بر عهده برنامه نویسان ارشد هست (البته تا اونجایی که من دیدم)، البته ابزارها تا حد بسیار زیادی در این زمینه کمک می کنند اما به نظرم مثلا پیاده سازی یک ساختار توسط یک دیزاین پترن در بین کدها، عملا توسط هیچ tools انجام نمیشه و نیاز هست که یک برنامه نویس اون رو انجام بده. در واقع به نظرم خیلی از بخش هایی که ما به عنوان refactoring می شناسیم، عملا توسط ابزار ها انجام نمیشه.
واقعا نمی دونم همچین extension ای برای phpstorme هست یا نه اما از اونجایی که متعلق به jetbrains.com هست، احتمال داره که وجود داشته باشه اما من متاسفانه اطلاعاتی در موردش ندارم. فکر کنم بهترین جا برای این سوال سایت های https://stackoverflow.com/ یا https://wordpress.stackexchange.com/ باشند.
حسین آقای عزیز، راستی فراموش کردم
اگر به مبحث refactoring در وردپرس علاقه دارید می تونید از منابع زیر هم استفاده کنید. یکی از اونها یک کتاب در مورد این هست و دومی یک workbook برای این کتاب اول هست. امیدوارم به کار شما بیاد
لینک کتاب Refactoring Tweak
لینک کتاب workbook مرتبط با کتاب بالا
با سلام
ممنون از مطلبی که پست کردید. خیلی جامع و مفید
من خیلی علاقه دارم واسه ی وردپرس کد بزم اما چون چند سالی هست که asp کار میکنم یکم برام سخته شایدم من راهش رو بلد نیستم.
اما ما توی دات نت چون کلا از کلاسها استفاده میکردیم میتونستیم سریع به متدها و منابع کدها دسترسی داشته باشیم.
اما در ورد پرس به این شکل نیست. مشکل من اینجاست که متدهای مورد استفاده در قالب یا پلاگین یا حالا هر کدی که بخوام بنویسم رو چه جوری باید پیدا کنم؟
توی پک آموزشی که خریده بودم کلا از داکیومنت وردپرس استفاده میکرد و خوب یه ذره کار رو سخت میکنه اگر کلاس یا حالا منبعی باشه که لیست کنه متد هارو باز خیلی بهتره.
با سلام خدمت شما دوست عزیز
حسین آقای عزیز، همون طور که فرمودید، اگه بخواهید از بستری های چون net. یا جاوا به دنیای وردپرس بیایید، اول کار یه خورده کار با وردپرس براتون گیج کننده خواهد بود. دلیل این امر استفاده از پارادیم Event-driven در ابتدای شکل گیری وردپرس بوده. به دلیل نداشتن ساختار MVC خیلی از توسعه دهنده ترجیح میدهند که اصلا سمت وردپرس نیایند. اما خب این به معنی نیست که نمیشه از OOP در وردپرس استفاده کرد و همین طور باز هم این به این معنی نیست که نمی شود وب اپلیکیشن های با کیفیت بالا، با وردپرس تولید کرد. فکر می کنم دلیل اینکه یه خورده در ابتدای راه، کار با وردپرس سخت هست، همین قضیه هست.
در ارائه ای که در چهارمین میتاپ وردپرس داشتم، در این مورد صحبت کردم و همین طور در آخرین ویدئویی که در سایت گذاشتم، نحوه پیاده سازی یک پلاگین به صورت شی گرا رو کامل توضیح داده ام. لینک رو براتون میذارم که در صورتی که نیاز داشتید، اون رو ببیند:
لینک پلاگین نویسی شی گرا در وردپرس
بر گردیم به سوال اصلی که مطرح کرده بودید. در حال حاضر بسیاری از بخش ها در هسته وردپرس، به صورت کلاس های از پیش تعریف شده هست که شما می توانید برای توسعه یا از اون ها استفاده کنید یا به دلخواه اون ها رو توسعه بدید. ضمن اینکه می تونید به راحتی کلاس های مورد نیاز خودتون را به پروژه اضافه کنید (مثلا می توانید از کامپوزر در پروژه خودتون استفاده کنید و هر پکیجی رو که می خواهید به دلخواه در پروژه خودتون استفاده کنید.
همان طور که فرمودید، برای هر چهارچوب، بستر یا فریم ورکی، یک Documentation وجود داره. برای وردپرس یک بخش قدیمی با آدرس https://codex.wordpress.org/ و یک بخش جدید با آدرس https://developer.wordpress.org/ وجود داره. هنوز در بعضی قسمت ها، بخش قدیمی کامل تر از بخش جدید هست اما فکر کنم به مرور کلیه بخش ها به قسمت جدید منتقل بشه.
سایت جدید در آدرس https://developer.wordpress.org/reference/ (بخش Code reference) دارای سرچ تقریبا مناسبی هست که می تونید بسته به دلخواه خودتون، نتایج رو فیلتر کنید. یکی از مزایای این بخش این هست که بعضی از تابع ها و هوک ها، هم نام بوده و با استفاده از این فیلتر کردن، به راحتی می تونید به داکیومنت مورد نظر دسترسی داشته باشید.
مثلا برای دسترسی به یوزرها و انجام بعضی از کارها بر روی آن ها، کلاسی با نام WP_User وجود داره که با سرچ اون چیزی مشابه زیر برای شما لیست می شود که می توانید به صفحه مورد نظر دسترسی داشته باشید:
برای کلاس ها و اینکه شامل چه property ها یا متدهایی هست هم، با رفتن به داخل صفحه هر کلاس، لیست کلیه خواص و همین طور متدها و همین طور اینکه فایل این کلاس در کجا قرار دارد، به صورت کامل در دسترس هست که به نظرم برای کار راه انداختن کافی هست.
اما راهکاری که خودم به شخصه اکثرا استفاده می کنم، ابتدا سرچ Problem Domain ای هست که دنبالش هستم و سپس از روی آن ها، کلاس ها یا متدهای مورد نظر رو شناسایی می کنم و سپس اون ها رو هم در سایت قدیمی و هم در سایت جدید، بررسی می کنم. به این صورت کاملا کاربردها و مثال های اون رو، به راحتی می توانم در پروژه خودم استفاده کنم.
به هرحال، برنامه نویسانی که از یک محیط دیگه به وردپرس می آیند، در ابتدا کار واقعا سخت خواهد بود اما وقتی بهش عادت کنید، در ادامه جدا شدن ازش واقعا سخت خواهد بود.