نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

۱۶ مطلب با موضوع «wordpress» ثبت شده است

به روزرسانی خودکار قالب‌ها و افزونه‌های وردپرس

امیرمسعود ایرانی | چهارشنبه, ۲۶ ارديبهشت ۱۳۹۷، ۰۲:۱۸ ب.ظ | ۰ نظر

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

تشخیص اینکه چه زمانی به‌روزرسانی خودکار به انجام برسد و چه زمانی انجام نشود، بر عهده تیم توسعه‌ی وردپرس است.

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

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

برای به‌روزرسانی تمامی افزونه‌ها به صورت خودکار، کافی است کد زیر را در فایل functions.php قالب خود یا یک افزونه‌ی جدید درج نمایید و آن را فعال کنید:

add_filter( 'auto_update_plugin', '__return_true' );

همچنین برای به‌روزرسانی تمامی قالب‌های موجود به صورت خودکار این کد را می‌بایست استفاده نمایید:

add_filter( 'auto_update_theme', '__return_true' );

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

add_filter( 'auto_update_translation', '__return_false' );
  • امیرمسعود ایرانی

رفع خطای «بروزرسانی دیگری در حال پیش‌روی است» در وردپرس

امیرمسعود ایرانی | چهارشنبه, ۱۵ فروردين ۱۳۹۷، ۰۴:۵۰ ق.ظ | ۲ نظر

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

  • بروزرسانی دیگری در حال پیش‌روی است
  • Another update currently in process

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

۱- انتظار برای رفع مشکل

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

۲- تغییر وضعیت وردپرس به صورت دستی

برای انجام این کار لازم است تغییراتی در پایگاه داده انجام دهید. جهت این کار phpMyAdmin را باز کنید و جدول options را بیابید. در این جدول برای عبارت «core_updater.lock» جستجو انجام دهید و اگر این مقدار را یافتید، آن را حذف کنید.
دقت کنید که انجام تغییرات در پایگاه داده باید با دقت انجام شود. عدم دقت در این کار می‌تواند به اطلاعات سایت شما آسیب بزند.

عدم رفع مشکل با روش‌های بالا

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

  • امیرمسعود ایرانی

پاکسازی ویروس از سایت‌های طراحی شده با وردپرس و جوملا

امیرمسعود ایرانی | سه شنبه, ۱۴ فروردين ۱۳۹۷، ۰۶:۳۲ ب.ظ | ۰ نظر

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

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

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

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

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

برای مشاوره و کسب اطلاعات بیشتر با ایمیل بنده در تماس باشید: amibct در gmail.com

  • امیرمسعود ایرانی

خطای SSL در هنگام به‌روزرسانی هسته و افزونه‌های وردپرس

امیرمسعود ایرانی | چهارشنبه, ۲۵ بهمن ۱۳۹۶، ۰۵:۰۵ ب.ظ | ۰ نظر
اگر در هنگام به‌روزرسانی وردپرس یا افزونه‌های آن با خطای زیر مواجه می‌شوید، ادامه‌ی مطلب را برای یافتن علت و راه حل مشکل مطالعه کنید:

cURL error 60: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
این خطا به دلیل عدم امکان در ارتباط با سرورهای وردپرس از طریق پروتکل ایمن https به وقوع می‌پیوندد. پروتکل https روشی برای انتقال اطلاعات به شکل ایمن است. اطلاعاتی که با این روش رد و بدل شوند، امکان شنود و امکان تغییرات در بین مسیر را ندارند.
معمولا این خطا در سرورهای اشتراکی که تنظیمات آن به درستی انجام نشده است یا نرم‌افزارهای قدیمی دارند رخ می‌دهد.
بهترین راه حل برای این مشکل، پیگیری از طریق هاست است. اگر هاست شما نمی‌توانند مشکل را برطرف کنند، شاید راه حل دوم، تغییر هاست و استفاده از خدمات شرکت‌هایی باشد که می‌توانند پشتیبانی بهتری داشته باشند.
راه حل سوم و نهایی این است که به وردپرس اعلام کنیم تا اطلاعات را از طریق پروتکل ایمن دریافت نکند و با استفاده از http این کار را انجام دهد.
جهت این کار، قطعه کد زیر را در فایل functions.php قالب خود درج نمایید:
add_filter( 'https_ssl_verify', '__return_false' );
add_filter( 'https_local_ssl_verify', '__return_false' );

  • امیرمسعود ایرانی

مقابله با نظرات هرزنامه خاص در سایت وردپرس

امیرمسعود ایرانی | سه شنبه, ۲۴ بهمن ۱۳۹۶، ۰۶:۰۹ ق.ظ | ۰ نظر

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

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

به این منظور به بخش تنظیمات > گفتگو مراجعه کنید و در قسمت «سیاه‌نامه‌ی دیدگاه‌ها» در هر خط یک کلمه که معمولا توسط ارسال کنندگان هرزنامه به کار می‌رود را درج کنید

مثلا کلمات «insurance» و «essay» را در دو خط مجزا ثبت کنید و تنظیمات را ذخیره نمایید.

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

  • امیرمسعود ایرانی

رفع مشکل خطای FTP در وردپرس

امیرمسعود ایرانی | شنبه, ۲۵ آذر ۱۳۹۶، ۰۱:۵۳ ق.ظ | ۰ نظر

ممکن است در هنگام انجام برخی فعالیت‌ها در محیط مدیریت وردپرس با خطای FTP مواجه شوید. در این خطا از شما خواسته می‌شود تا اطلاعات اتصال به ftp سایت خود را در اختیار وردپرس قرار دهید.

این خطا در هنگام به‌روزرسانی وردپرس یا افزونه‌ها یا نصب قالب و افزونه‌های جدید به وقوع می‌پیوندد.

علت رخداد این مشکل، وجود ناهماهنگی در دسترسی‌های تعیین شده روی شاخه‌های موجود در هاست می‌باشد. این خطا معمولا در برخی هاست‌های اشتراکی به وقوع می‌پیوندد.

برای حل این مشکل، قطعه کد زیر را در فایل wp-config.php ثبت کنید. با انجام این کار ممکن است مشکل برطرف شود.

define('FS_METHOD','direct');
  • امیرمسعود ایرانی

کاهش حجم دیتابیس وردپرس

امیرمسعود ایرانی | دوشنبه, ۲۴ مهر ۱۳۹۶، ۰۱:۳۳ ق.ظ | ۰ نظر

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

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

نکته: قبل از انجام هر گونه تغییرات در پایگاه داده، یک نسخه پشتیبانی از دیتابیس خود تهیه کنید تا در صورت رخداد مشکل، بتوانید به حالت قبل برگردید.

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

  1. افزونه‌های وردپرس را بررسی کنید و آن‌هایی که برای شما استفاده ندارند، غیرفعال و حذف کنید. گاهی افزونه‌های مختلف، اطلاعات زیادی را در پایگاه داده‌ی شما ذخیره می‌کنند.
  2. افزونه‌ی WP-Optimize را نصب کنید و به بخش تنظیمات آن مراجعه کنید.
  3. گزینه‌های پیش‌فرض را که افزونه به شما پیشنهاد می‌دهد، به همان حالت باقی بگذارید و روی دکمه Optimize کلیک کنید.
  4. این افزونه پست‌های موجود در سطل زباله، کامنت‌های تایید نشده و چندین مورد دیگر از اطلاعاتی که پایگاه داده شما را اشغال کرده‌اند پاکسازی و بهینه‌سازی می‌کند.
  5. پس از پایان عملیات این افزونه، می‌توانید آن را غیرفعال کنید و هر ماه مجددا آن را فعال و بهینه‌سازی را انجام دهید.

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

  • امیرمسعود ایرانی

روش شناسایی علت کند شدن سایت طراحی شده با وردپرس

امیرمسعود ایرانی | يكشنبه, ۸ اسفند ۱۳۹۵، ۰۵:۰۰ ب.ظ | ۱ نظر

در یکی از سایت‌هایی که با استفاده از ربات محصولات آن درج می‌شد، پس از مدتی با کاهش سرعت بسیار زیاد مواجه شدیم، پس از جستجو و بررسی متوجه شدیم که افزونه‌ی Revolution Slider و JS Composer دو افزونه‌ای هستند که سرعت عملکرد وردپرس را به شدت کاهش می‌دهند.

برای شناسایی این افزونه‌های مشکل دار، لازم بود تا افزونه‌ی Query Monitor را که وظیفه دارد فهرست کوئری‌های اجرا شده روی پایگاه داده را فهرست کند، نصب کردیم.

این افزونه نشان داد که Revolution Slider با اجرای سه کوئری بهینه نشده که برای عملکرد نیازمند پیمایش کل جدول پایگاه داده هستند را به اجرا می‌گذارد.

به دلیل عملکرد ربات و سنگین شدن جدول‌های بانک اطلاعاتی پیش‌فرض وردپرس، هر درخواست در بخش مدیریت حدود ۱۷ ثانیه تاخیر را برای اجرای کوئری‌های فوق به هدر می‌داد.

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

  • امیرمسعود ایرانی

وردپرس چیست؟

امیرمسعود ایرانی | سه شنبه, ۱۵ دی ۱۳۹۴، ۰۴:۳۶ ق.ظ | ۰ نظر

وردپرس یک CMS یا سیستم مدیریت محتوای مشهور است. طبق آخرین آمار تقریبا از هر چهار سایت موجود روی اینترنت یکی از آن‌ها با Wordpress پیاده‌سازی شده است.

وردپرس سیستمی رایگان و متن‌باز است. به این معنی که استفاده و تغییر دادن آن برای تمامی کاربردها بدون پرداخت هزینه امکان‌پذیر است.

از مهم‌ترین ویژگی‌های وردپرس وجود هزاران افزونه‌ی رایگان برای توسعه دادن امکانات و توانایی‌های آن است. افزونه‌های موجود برای وردپرس در موضوع‌های گوناگونی توسعه پیدا کرده‌اند. تمامی افزونه‌های وردپرس که در کتابخانه‌ی افزونه‌های آن معرفی شده‌اند نیز از قانون رایگان بودن وردپرس پیروی می‌کنند در نتیجه ایجاد یک سایت شخصی یا یک سایت رسمی و سازمانی و شرکتی با وردپرس به راحتی و بدون پرداخت هزینه امکان‌پذیر است.

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

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

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

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

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

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

پشتیبانی وردپرس از سئو یا بهینه‌سازی موتورهای جستجو با استفاده از افزونه‌های گوناگونی که برای این کار وجود دارند بسیار موثر است. شاید حدود ۷۰ درصد کارهایی که برای SEO کردن یک سایت وردپرسی مورد نیاز است به سادگی و با نصب یک افزونه به انجام می‌رسد.

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

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

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

استفاده از وردپرس روز به روز در حال افزایش است. و با روند رشد فعلی بعید نیست در آینده درصد استفاده از وردپرس به ۵۰ درصد نیز نزدیک شود.

یکی از معایب وردپرس سرعت نسبتا کم است. هرچند در نگارش‌های مختلف تلاش شده تا سرعت به بیشترین حد ممکن برسد ولی امکانات متنوع و توسعه‌پذیری زیاد سبب می‌شود در سرعت اثر منفی ایجاد شود. با روی کار آمدن نگارش جدید php با نام کد phpng انتظار می‌رود که مشکل سرعت وردپرس تا حد زیادی برطرف شود.

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

طراحی سایت با وردپرس
  • امیرمسعود ایرانی

پیوندهای یکتای قدیمی در وردپرس

امیرمسعود ایرانی | سه شنبه, ۱۵ دی ۱۳۹۴، ۰۲:۳۷ ق.ظ | ۰ نظر

یکی از ویژگی‌های وردپرس، ثبت نامک یا Slug برای نوشته‌ها و برگه‌ها و همچنین پست‌های سفارشی است.

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

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

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

برای روشن تر شدن موضوع به مثال زیر توجه کنید:

کاربر صفحه‌ای با نامک content1 ایجاد می‌کند و آن را منتشر می‌کند.

کاربر نامک صفحه‌ی ایجاد شده را به content2 تغییر می‌دهد.

کاربر صفحه‌ای با نامک content1 ایجاد می‌کند.

در این مرحله باز کردن هر کدام از نامک‌های content1 یا content2 سبب می‌شود تا content2 باز شود


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


طراحی سایت با وردپرس

DELETE FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug'
  • امیرمسعود ایرانی