فهرست مقاله
شما هم بوده ایدوردپرسپیام خطا"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"سردرد دادی؟"
حل این مشکل در واقع دشوار نیست، بیایید اکنون به طور مفصل در مورد علت بروز این مشکل و نحوه حل آن با کدهای ساده و موثر صحبت کنیم.
چرا خطاهای create_function را دریافت می کنم؟
ابتدا کمی دانش پیش زمینه. در PHP 7.2،create_function()منسوخ شده است و در PHP 8.0 این تابع مستقیماً حذف شده است. به عبارت دیگر، اگر سرور شما به PHP 7.2 یا بالاتر ارتقا یافته باشد و همچنان از کدهای قدیمی استفاده کند، این مشکل پیش خواهد آمد.
اما اصل مشکل این است:create_functionمحصول یک دوران قدیمی است. مشکل آن نه تنها این است که دیگر پشتیبانی نمیشود، بلکه عملکرد ضعیف و خطرات امنیتی احتمالی را نیز به همراه دارد. راه حل جدید استفاده استتابع ناشناس(توابع ناشناس).
کد را اصلاح کنید: خطای create_function را حل کنید

حالا بیایید ببینیم که چگونه کد قدیمی را جایگزین کنیم. در زیر طرح اصلاح کد خاص آمده است:
کد اصلی
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
کد اصلاح شده
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
توضیح کد:
function() { return 1; }یک تابع ناشناس است که به هیچ پارامتری نیاز ندارد و برمی گرداند1.get_bloginfo('url')این تابعی است که آدرس صفحه اصلی وب سایت را برمی گرداند.
رویکرد بهتر: با احتیاط با غیرفعال کردن تصاویر کوچک رفتار کنید
غیرفعال کردن کامل تصاویر کوچک وردپرس گاهی اوقات بهترین گزینه نیست. اگر تم ها یا پلاگین های خاصی به تصاویر با اندازه خاصی نیاز دارند، غیرفعال کردن کامل آنها ممکن است مشکلات غیرمنتظره ای ایجاد کند.
در اینجا یک راه حل انعطاف پذیرتر وجود دارد: به طور انتخابی اندازه های غیر ضروری تصویر را از طریق فیلترها غیرفعال کنید.
کد نمونه
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
این رویکرد نه تنها مشکل را حل می کند، بلکه سازگاری با ویژگی های خاص را نیز حفظ می کند.
کد را اصلاح کنید
کد اصلاح شده را به یکی از مکان های زیر اضافه کنید:
- از موضوع جاری
functions.phpفایل. - پلاگین عملکرد سفارشی (روش توصیه شده برای جلوگیری از پوشش کد توسط به روز رسانی تم).
اگر پس از اصلاح کد همچنان خطا رخ داد، چه کاری باید انجام دهم؟
اگر افزونه fluent-snippet-storage فعال باشد و پس از اصلاح همچنان خطاهایی وجود داشته باشد، ممکن است درfluent-snippet-storage/index.phpیک کش در آن وجود دارد و کد خطای error_files باید حذف شود.
برگردwp-content/fluent-snippet-storage/index.phpفایل کنید، تا انتها به پایین بروید و کدی شبیه به زیر پیدا کنید:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
کد برای حذف این رکوردهای خطا:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
نکته پاداش: از سازگاری کد اطمینان حاصل کنید
قبل از تغییر کد، توصیه می شود از فایل های وب سایت و پایگاه داده بک آپ بگیرید. میتوانید از یک پلاگین (مانند UpdraftPlus) برای تکمیل سریع پشتیبانگیری و جلوگیری از غافلگیری هنگام بروز مشکل استفاده کنید.
در عین حال، اگر با PHP آشنایی ندارید، توصیه می شود به جای اجرای مستقیم محیط تولید، سعی کنید کد را در محیط تست تغییر دهید.
بهینه سازی کد یک نبرد دائمی است
این سوال ساده به نظر می رسد، اما در واقع یک مشکل رایج است که باید در توسعه وب سایت با آن مواجه شد:سازگاری کدهای قدیمی با محیط جدید. خواه ارتقای نسخه PHP یا بهبود عملکردهای وردپرس باشد، همه آنها برای اجرای کارآمدتر و ایمن تر وب سایت طراحی شده اند.
برای توسعه دهندگان، به روز رسانی کد به موقع و یادگیری فناوری های جدید ضروری است. توابع ناشناس نه تنها کد را مختصرتر می کند، بلکه عملکرد را بهبود می بخشد و خطرات امنیتی بالقوه را کاهش می دهد. هر بهینه سازی وب سایت شما را یک قدم جلوتر می برد.
خلاصه
create_function()دیگر در PHP 7.2 و بالاتر پشتیبانی نمی شود و به جای آن توصیه می شود از توابع ناشناس استفاده کنید.- پس از اصلاح کد، وب سایت شما کارآمدتر و امن تر خواهد شد.
- برای سازگاری بهتر با پلاگین ها و تم ها، غیرفعال کردن انتخابی اندازه تصویر ممکن است راه حل بهتری باشد.
- بهینه سازی کد نه تنها برای رفع مشکلات بلکه گامی در جهت بهبود کیفیت وب سایت شماست.
اگر با مشکلات مشابهی روبرو شده اید، ممکن است بخواهید راه حل های موجود در این مقاله را امتحان کنید.
وبلاگ امید چن ویلیانگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده توسط "خطای کشف نشده وردپرس: فراخوانی به راه حل تابع نامشخص create_function()" ممکن است برای شما مفید باشد.
به اشتراک گذاری لینک این مقاله خوش آمدید:https://www.chenweiliang.com/cwl-32407.html
برای کشف ترفندهای مخفی بیشتر🔑، به کانال تلگرام ما بپیوندید!
اگر دوست داشتید به اشتراک بگذارید و لایک کنید! اشتراک گذاری ها و لایک های شما انگیزه ادامه دار ماست!