بهترین راه برای اجازه دادن به پلاگین برای یک برنامه PHP. درج کد PHP در وردپرس از طریق ویجت ها افزونه Retreat php

نسخه هفتم PHP در سال 2015 منتشر شد. دور جدیدی در توسعه این زبان برنامه نویسی فرصت های زیادی را برای همه کسانی که از PHP استفاده می کنند به ارمغان آورده است. از جمله مزایای نسخه جدید، سرعت باید برجسته شود. بنابراین به گفته سازندگان، سرعت اسکریپت ها در PHP 7 نسبت به نسخه های قبلی تقریبا دو برابر شده است. در این راستا، بسیاری از صاحبان وب سایت هایی که نسخه های قدیمی PHP را نصب کرده اند، می خواهند به نسخه جدید سوئیچ کنند.

چرا سازگاری را بررسی کنید؟

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

چگونه سازگاری با PHP 7.0 را بررسی کنیم؟ افزونه بررسی سازگاری PHP

افزونه PHP Compatibility Checker به شما این امکان را می دهد که کل سایت را اسکن کنید و مشخص کنید کدام یک از اجزای آن (تم ها، پلاگین ها) با نسخه انتخاب شده PHP سازگار نیست. ابتدا باید آن را نصب و فعال کنید، سپس به پنل مدیریت Tools -> PHP Compatibility بروید.

همانطور که می بینید، این افزونه تنظیمات بسیار واضحی را ارائه می دهد. برای شروع بررسی، باید نسخه PHP را که می‌خواهید سایت را از نظر سازگاری بررسی کنید (بلوک نسخه PHP) انتخاب کنید. یک عملکرد راحت افزونه انتخاب وضعیت اجزای مورد بررسی است. دو گزینه برای انتخاب وجود دارد: یا بین تم ها و افزونه های فعال بررسی کنید یا در موارد غیرفعال (فیلد پلاگین / وضعیت تم). برای شروع اسکن، روی دکمه Scan site دوباره کلیک کنید.

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

همه کسانی که با وردپرس آشنا هستند در مورد موضوع (قالب) فایل functions.php شنیده اند. با این حال، همه هدف آن را به خوبی درک نمی کنند و آن را فقط به عنوان فایلی می بینند که توابع مختلف PHP را ذخیره می کند. در اینترنت، مانند سایت من، اغلب پیشنهاد می شود کد PHP را به این فایل اضافه کنید. با این حال، هر کدی برای این فایل کار نمی کند. نه به این دلیل که کار نخواهد کرد، بلکه به این دلیل که با منطق استفاده مطابقت ندارد.

همچنین، هنگام ویرایش functions.php، مبتدیان اشتباهاتی مرتکب می شوند که به دلیل آن سایت کار نمی کند.

در این مقاله سعی می کنم تمام این نکات را در نظر بگیرم: چه زمانی از functions.php استفاده کنیم و چه زمانی بهتر است این کار را نکنیم، چه خطاهایی ممکن است در هنگام ویرایش functions.php رخ دهد.

ویژگی های functions.php

functions.php در پوشه theme قرار دارد و هر بار هنگام مشاهده قسمت خارجی سایت، در پنل مدیریت و حتی در هنگام درخواست AJAX بارگذاری می شود. هیچ موردی وجود ندارد که functions.php گنجانده نشود و این فرصت های گسترده ای را برای توسعه دهندگان باز می کند.

برای مثال، کد زیر که در فایل functions.php theme درج شده است، با فعال کردن پشتیبانی از ریز عکس‌های پست، قابلیت‌های تم را گسترش می‌دهد:

Add_action("after_setup_theme"، "wp_kama_theme_setup"); تابع wp_kama_theme_setup())( // پشتیبانی از تصاویر بندانگشتی add_theme_support("Post-Thumbnails"); )

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

## داده های مربوط به تعداد درخواست های پایگاه داده در پنل مدیریت add_filter("admin_footer_text", "wp_usage"); // در پنل مدیریت add_filter("wp_footer", "wp_usage"); // در تابع وب سایت wp_usage())( echo sprintf(__("SQL: %d در %s ثانیه. %s MB"، "km")، get_num_queries()، timer_stop(0، 3)، round(memory_get_peak_usage () /1024/1024، 2))؛ )

functions.php در مقابل پلاگین ها

- نادان ها می گویند "افزونه ها کندتر از کد موجود در فایل functions.php کار می کنند" - اینطور نیست!

در تئوری، درج کد در functions.php مانند نصب یک پلاگین است، اما این یک چیز نیست. از این گذشته، وقتی تم را تغییر می دهیم، یک functions.php کاملا متفاوت دریافت می کنیم و تمام تغییرات ایجاد شده از بین می رود، اما هر چقدر هم که تم تغییر کند، افزونه باقی می ماند. به این دلایل باید به فایل functions.php مراجعه کنیم. اگر عملکرد اضافه شده نه تنها به موضوع، بلکه به کل سایت مربوط می شود، پس باید در مورد اتصال آن به عنوان یک افزونه فکر کنید.

مثال دوم بالا «داده‌های مربوط به تعداد پرس‌و‌جوها به پایگاه داده در فوتر پنل مدیریت» است. منطقاً برای استفاده در فایل functions.php مناسب نیست. زیرا اگر قالب را تغییر دهیم این قابلیت را از دست می دهیم اما در پنل مدیریت استفاده می شود و صرف نظر از اینکه از چه موضوعی استفاده می شود مورد نیاز است.

پس بیایید آن را از functions.php حذف کنیم و آن را به یک افزونه تبدیل کنیم - آسان است!

برای ایجاد یک افزونه، باید یک فایل با کد زیر ایجاد کنید (نام فایل می تواند هر چیزی باشد)، آن را به فهرست پلاگین wp-content/plugins/ اضافه کنید و افزونه را در پنل مدیریت فعال کنید:

. به طور معمول، اگر کدی که درج می‌کنید دارای این تگ‌ها در ابتدا و انتهای باشد، باید حذف شوند. همچنین فایل functions.php نباید هیچ متنی (کد HTML یا محتوای دیگر) را روی صفحه نمایش دهد. خروجی متن فقط در داخل توابعی مجاز است که بعداً در الگو استفاده می‌شوند یا به قلاب‌ها متصل می‌شوند (برای جزئیات بیشتر به زیر مراجعه کنید).

شما نمی توانید هیچ کاراکتری را قبل از , از جمله کاراکترهای نامرئی (خطوط شکسته) مجاز کنید، زیرا functions.php قبل از تنظیم هدرهای http متصل می شود (چنین هدرهایی داده های مختلفی را منتقل می کنند، به عنوان مثال، اینکه این یک سند html است؛ رمزگذاری utf-8 متفاوت است. ). طبق قوانین PHP، پس از ارسال هدرها، محتوا باید روی صفحه نمایش داده شود. و همه چیز بیرون محتوا است - متن نمایش داده شده روی صفحه، حتی کاراکتر \n نامرئی. بنابراین این متن باعث خطا می شود.

برای جلوگیری از خطا، 4 نکته را در نظر بگیرید: #1 تودرتو صحیح

به عنوان مثال، ما این ساختار را داشتیم:

......اینجا کد ......... ?>

درست مثل این:

شماره 2 بدون شکست خط، فاصله، متن قبل

این کد یک خطا ایجاد می کند:

اما این یکی اینطور نیست:

منطقی تر است که آن را اینگونه بنویسیم:

این اتفاق می افتد که یک خط شکست در انتهای functions.php قرار می گیرد، و سپس این یک مشکل واقعی می شود، زیرا به نظر می رسد همه چیز درست است، اما سایت کار نمی کند. واقعاً بعد؟> یا قبل از آن یک خط خالی وجود دارد

به همین دلیل، بسیاری از توسعه دهندگان تگ بسته شدن ?> ​​را به طور کلی حذف می کنند؛ این در PHP قابل قبول است. توصیه می کنم همیشه این کار را انجام دهید:

داخل توابع PHP

اگر تابعی در functions.php وجود داشته باشد، می توان از تگ ها در داخل این تابع استفاده کرد، به عنوان مثال، برای برجسته کردن بصری کد HTML داخل تابع:

این کد html است

واقعیت این است که در این حالت تابع فقط ثبت می شود و هیچ عملی را انجام نمی دهد. همه چیز داخل یک تابع (بین ( )) تا زمانی که این تابع فراخوانی نشود کار نمی کند و این توابع معمولاً پس از ارسال هدرهای HTTP از طریق یک الگو یا از طریق فیلترها فراخوانی می شوند. بنابراین در این مثال، می‌توانیم شکست‌های خط را نادیده بگیریم و از ?> and استفاده کنیم