خطای syntax error چیست؟ چگونگی رفع ارور syntax error وردپرس
وقتی صحبت از رفع خطا در وردپرس یا هر سیستم دیگری میشود سریعا دستپاچه شده و آرزو میکنیم که ای کاش راهی باشد که بدانیم علت رخ دادن ارور چیست تا سریعتر بتوانیم منبع خطا را یافته و آن را رفع کنیم. خوشبختانه باید عرض کنم که «ای کاش چیز دیگری آرزو میکردید» چرا که دقیقا قرار است به معرفی چنین چیزی در وردپرس با نام syntax error وردپرس بپردازم که البته بسیاری از ما اشتباها آن را با عنوان خطا میشناسیم.
در واقع باید گفت که وقتی خطای syntax error یا parse error را در سایت وردپرسی خود میبینید باید بدانید که ابن پیغام خطا نیست؛ بلکه یک ابزار داخلی در وردپرس است که به شما کمک میکند فایلها و کدنویسیهایی که در سایت خطا دارند را شناسایی کنید و بتوانید سریعتر مشکلات سایت خود را رفع کنید.
در ادامه این مقاله قرار است در مورد نحوه برطرف کردن ارور syntax error صحبت کنیم و ببینیم که چطور میتوانیم به کمک این ابزار و در کنار آن استفاده از دیباگ وردپرس سریعتر در وردپرس مثل حرفهایها خطایابی کرده و مشکلات سایت را در عرض چند دقیقه رفع کنیم.
خطای syntax error چیست و چه کاربردی دارد؟
قبل از هر چیزی باید ذکر کنیم که منظور از خطای syntax error این نیست که سایت شما دچار این نوع خطا است. بلکه وردپرس چنین ویژگی را دارد که با استفاده از آن میتوانید اقدام به خطایابی کرده و مشکلاتی که مربوط به وردپرس، قالب و یا افزونهها هستند را یافته و آنها را رفع کنید.
این ویژگی صرفا محدود به وردپرس نیست و در سیستمها و زبانهای برنامه نویسی مختلفی مثل پایتون نیز استفاده از سینتکس برای یافتن دلیل خطاها وجود دارد. این ویژگی به شما اعلام میکند که چه فایلی از اسکریپت شما دارای مشکل است، این فایل در چه مسیری(پوشهبندی) قرار دارد و اینکه خطا در کدام خط از کدنویسی ایجاد شده است.
تا اینجا هم که مقالات مختلفی را در مورد رفع خطاهای وردپرس برای شما تهیه کردم در جای جای این مقالات به معرفی syntax error اشاره کردم. البته اگر با خطایی مثل parse error هم مواجه شدید باید بدانید که هر دو مورد از این خطاها یکی هستند و تفاوتی در آنها وجود ندارد. حالا چرا باید از parse error برای رفع خطاهای وردپرس استفاده کنیم؟
- ایجاد تداخل در افزونههای وردپرس یا شخصی سازی افزونهها
- ایجاد تداخل بین قالب با افزونهها یا هسته وردپرس
- شخصی سازی در هسته وردپرس
به هر یک از دلایل بالا ممکن است خطاهایی در سایت شما وجود داشته باشند. برخی از آنها دارای اهمیت بالایی بوده و به صورت کلی باعث میشوند که در نمایش دادهها و ذخیره سازی آنها در دیتابیس نیز مشکلاتی وجود داشته باشد. اما برخی دیگر جنبه هشدار دارند. بنابراین به هر دلیلی که قصد ایجاد تغییرات در هسته، پوسته و افزونه وردپرس دارید باید از این ویژگی استفاده کنید تا اگر خطا و هشداری وجود دارد آن را برطرف کنید.
چگونه ارور syntax error در وردپرس را رفع کنیم؟
قبل از اینکه به چگونگی رفع ارور syntax error در وردپرس بپردازم یک نکته مهم در استفاده از آن وجود دارد. نکته اینجاست که تا زمانی که شما دیباگ وردپرس را فعال نکرده باشید، امکان نمایش خطاها و رفع ارور در وردپرس وجود ندارد. بنابراین قبل از هر چیزی به کمک مقاله آموزش دیباگ وردپرس این ویژگی را در وردپرس فعال کنید.
بعد از فعال کردن یک سری خطا به صورت کد نمایش داده میشود که مسیر، نام فایل و شماره خطی که دارای خطا است در صفحه ظاهر خواهد شد. این ویژگی در دو بخش از وردپرس به ما نمایش داده میشود که در ادامه هر دو را بررسی میکنیم.
بخش اول: رفع خطای syntax در وردپرس
برای اینکه با این نوع خطا آشنا شوید به صورت یک مثال آن را بررسی میکنم. اگر به تصویر زیر دقت کنید برای یک سایت این خطا رخ داده است که مربوط به صفحه اصلی آن بوده و در استفاده از فانکشن در چایلد تم قالب یک تکه کد وجود دارد که باعث خطا شده است.
در ابتدا نوع خطا ذکر شده است که با عبارات parse error، syntax error، unexpected آنها را میبینید. این سه پیغام را در هر جا که دیدید باید بدانید که خطایی در برنامه نویسی وردپرس وجود دارد. هر یک از این پیغامها در شرایط خاصی نمایش داده میشوند که ممکن است هر سه با هم باشند یا اینکه دو به دو نمایش داده شوند. بنابراین شرایط نمایش به ترتیب زیر خواهد بود:
- parse error: اگر خطایی در وردپرس، هسته یا قالب وردپرس وجود داشته باشد که مربوط به برنامه نویسی است ارور parse error یا fatal error در ابتدا نمایش داده میشود.
- syntax error: وقتی که این بخش از خطا در پیغام خطا وجود داشته باشد، یعنی کدهای برنامه نویسی دچار مشکل شدهاند.
- unexpected: این گزینه هم زمانی نمایش داده میشود که کدهای برنامه نویسی که در اینجا منظور توابع وردپرس، توابع php و سایر کاراکترهای مربوط به زبان برنامه نویسی است اشتباه انتخاب شده باشند. به عنوان نمونه در تصویر بالا اگر دقت کنید به کاراکتر ; و [ ایراد گرفته است که باید این خط را بررسی کرده و کدنویسی را اصلاح کنیم.
در ادامه خوانایی پیغام خطا تغییر یافته و حالا parse error وردپرس به ما نمایش میدهد که خطا در کجا رخ داده است. در این نمونه هم به ترتیب بررسی میکنیم که چه چیزهایی مشخص شده است.
- آدرس فایل حاوی خطا: اگر دقت کنید مسیرهایی با کاراکتر ; از هم جدا شدهاند که بر اساس مسیردهی که در هاست و سرور وجود دارد مشخص شدهاند. حال هاست شما میتواند سی پنل، دایرکت ادمین، پلسک یا هر نوع هاست دیگری باشد. در هر حالتی مسیر به این صورت نمایش داده میشود که در اینجا چون خطا در لوکال هاست قرار دارد، پوشه htdocs را میبینید که در ادامه مسیرها و پوشههای وردپرس هستند.
- نام فایلی حاوی خطا: بعد از آدرس نام فایل ذکر میشود که چون در مورد خطای syntax error وردپرس صحبت میکنیم، مسلما بیشتر فایلها با فرمت php. هستند. که در اینجا خطا به فایلی با نام functions.php مربوط میشود که اگر ادامه مسیر را دنبال کنیم مربوط به قالب 2017 که در پوشه twentyseventeen است میشود.
- شماره خطی که خطا در آن وجود دارد: در نهایت بعد از اینکه آدرس و نام فایل مشخص شد وردپرس دقیقا اعلام میکند که خطا در کدام خط از فایل قرار دارد. که در اینجا بعد از on line که به معنی «در خط» است، شماره خط ۲۴ مشخص شده که باید این خط را بررسی کرده و ببینیم علت خطا چیست.
بعد از اینکه مسیر مشخص شد باید به کمک شناختی که از کدنویسی دارید خطا را برطرف کنید. اما موضوع اینجاست که همیشه خطا مربوط به همان خطی نیست که در syntax error مشخص شده است.
گاهی اوقات این خطاها به این دلیل رخ میدهند که ما توابعی را در فایل دیگری تعریف کردیم که در فایل دیگری فراخوانی شده است. بنابراین لازم است که آشنایی کافی با کدنویسی یا حداقل خواندن کدها داشته باشید که اگر بخاطر استفاده و فراخوانی اشتباه تابعی رخ داده فایلی که فراخوانی در آن انجام گرفته را یافته و مشکل را رفع کنید.
بخش دوم: رفع ارور syntax در پیشخوان وردپرس
گاهی اوقات رخ میدهد که از منوهای نمایش> ویرایشگر پوسته یا افزونهها> ویرایشگر افزونه به ترتیب برای ویرایش کدهای قالب یا افزونه سایت خود استفاده میکنید. پیش از هر چیزی لازم است که در استفاده از این بخش به شما هشدار دهم.
توجه داشته باشید که: از آنجایی که با دادن دسترسی به دیگران در نقش کاربری مدیر کل، این امکان داد تا دسترسی به ویرایشگر افزونه یا قالب برای دیگران وجود داشته باشد، ممکن است تا با قرار دادن کدهایی اقدام به ایجاد در پشتی در سایت شما بکنند. یکی از بیشتری مواردی هم که در روش مهندسی اجتماعی برای هک سایت وردپرسی رخ میدهد بی توجهی به این مسئله است.
بنابراین سعی کنید حتما با استفاده از روشهایی که برای غیرفعال کردن ویرایشگر افزونه و قالب وردپرس در بخش پیشخوان وجود دارد دسترسی به این بخش را مسدود کنید.
حالا اگر به هر دلیلی مثل دسترسی نداشتن موقتی به هاست میخواهید از این بخش برای رفع خطای syntax error وردپرس استفاده کنید، مطمئنا با این پیغام خطا نیز مواجه خواهید شد که یکی از نمونههای آن را در تصویر زیر میبینید.
همانطور که در این حالت مشاهده میکنید یک سری تفاوت با حالت اول که در بخش کاربری سایت دیدم در آن وجود دارد. به عنوان مثال شماره خط در ابتدا ذکر شده است. حال در ادامه به بررسی این نمونه میپردازیم.
- an error on line: این بخش از خطا به ما اعلام میکند که این خطا در کدام خط رخ داده است. که اگر به تصویر دقت کنید خط 588 در اینجا ذکر شده است.
- of file: در اینجا نام فایل بر اساس آدرس مسیری که در هاست دارد مشخص شده است. اما برخلاف آنچه که در نمونه قبل دیدیم، مسیردهی در اینجا بر اساس پوشههای وردپرس شروع میشود. که در اینجا اعلام شده فایل functions.php که در مسیر wp-content/themes/twentyseventeen قرار دارد شامل این خطا است. که شماره خطی که خطا وجود دارد در بالا مشخص شد که خط 588 است.
- stntax error: در نهایت نوع خطا در اینجا نمایش داده میشود. که استفاده از مقدار unexpected در اینجا یعنی مشکلی در کد نویسی ما وجود دارد که همانطور که میبینید به استفاده از کاراکتر ! مربوط میشود.
حالا به همین ترتیب میتوانید ارور syntax error که در هنگام ویرایش افزونه یا قالب وردپرس از طریق پیشخوان وردپرس انجام میدهید، آن را برطرف کنید.
جمع بندی نهایی
در این مقاله به بررسی خطای syntax error در وردپرس پرداختم و به شما معرفی کردم که با استفاده از این ابزاری که وردپرس در اختیار قرار داده چگونه میتوانید در زمان کوتاهی خطاهای سایت را متوجه شده و آنها را برطرف کنید. سپس انواع مختلف این خطا که در بخش کاربری و بخش ادمین وردپرس(wp admin) رخ میدهد را مورد بررسی قرار داده و چگونگی خواندن این خطا و یافتن مسیر را با هم طی کردیم.