- סטטוס
- נפתר
- דווח עבור
- Advanced Custom Fields Multilingual 2.1.2
- נפתר בגרסה
- Advanced Custom Fields Multilingual 2.1.3
- תוסף/ערכת עיצוב קשורים
- Advanced Custom Fields (ACF)
- תגיות נושא
- ATE, Bug, Compatibility
סקירה כללית של התקלה
אם אתה משתמש בתוסף Advanced Custom Fields לרישום סוגי תוכן מותאמים אישית או טקסונומיות מותאמות אישית, ייתכן שתיתקל בשגיאה קריטית בסביבות המשתמשות ב־PHP 8 או באזהרות ב־PHP 7, כאשר מאוחסנים נתונים פגומים עבור אחד מהאובייקטים האלה:
PHP Fatal error: Uncaught TypeError: array_walk(): Argument #1 ($array) must be of type array, null given in .../wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php:55
פתרון עוקף
אנא ודא שיש לך גיבוי מלא של האתר לפני שתמשיך.
אפשרות 1
כאשר Advanced Custom Fields Multilingual כבוי, ערוך את סוג התוכן המותאם אישית או הטקסונומיה של ACF שבהם מופיעה הבעיה, הגדר את הערכים החסרים עבור התוויות או מזהה הכתובת של האובייקט, ושמור. לאחר מכן הפעל את Advanced Custom Fields Multilingual והכל יעבוד כראוי.
אפשרות 2
- פתח את הקובץ …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php.
- חפש את שורה 53.
- החלף את:
array_walk( $objectArgs['labels'], function( &$value, $key ) use ( $translatedLabels ) { $value = Obj::propOr( $value, $key, $translatedLabels ); } ); - בקטע הבא:
$labels = Obj::propOr( [], 'labels', $objectArgs ); array_walk( $labels, function( $value, $key ) use ( &$objectArgs, $translatedLabels ) { $objectArgs['labels'][ $key ] = Obj::propOr( $value, $key, $translatedLabels ); } );