مشكلة خطا في ملف الwalker

  • ma2500

السلام عليكم ورحمةالله وبركاته اخواني الكرام كيف حالكم اعمل على دورة ووردبريس الزيرو اطبق لوحدي في الكورس وواجهتني مشكلة وهي

Warning: Attempt to read property "items_wrap" on array in C:\xampp\htdocs\wordpress\wp-content\themes\elzero\wp-bootstrap-navwalker.php on line 122


وهذا هو ملف الnavwalker الموجود لدي اخواني الكرام بارك الله فيكم

لم اعرف الخطا ممكن واحد يتبرع بالشرح بارك الله فيكم

حاليا عناصر القائمة لا تظهر ويظهر هذا الخطا فقط


تفقد السطر التالي في الكود لديك:

$item_output .= $indent . $args->link_before . $item->title . $args->link_after;

فالكائن $args الذي تم تمريره إلى طريقة start_el() يحتوي على خاصية items_wrap، وتلك الخاصية هي سلسلة تستخدم لتغليف محتوى كل عنصر قائمة، والقيمة الافتراضية لتلك الخاصية هي <li>، ولكن إن كانت قيمة الخاصية تحتوي على السلسلة itemscope فإن طريقة start_el() ستحاول قراءة خاصية items_wrap، مما سيؤدي إلى حدوث الخطأ لأن خاصية items_wrap غير موجودة.

عليك إما إزالة السلسلة itemscope من خاصية items_wrap أو تعديل طريقة start_el() حتى لا تحاول قراءة خاصية items_wrap إذا كانت تحتوي على السلسلة itemscope.

وإليك مثال على كيفية تعديل طريقة start_el():

public function start_el( &$output, $item, $depth = 0, $args = null, $id = 0 ) {
	if ( false !== strpos( $args->items_wrap, 'itemscope' ) ) {
		$this->has_schema  = true;
		$args->link_before = '<span itemprop="name">' . $args->link_before;
		$args->link_after .= '</span>';
	}


	// ...


}

مرحبا استاذي الغالي لكن كيف يمكن فهم هذا الكود حيث ان المحاضر لم يقم بشرحه بارك الله فيك