त्रुटि: MyClass की घोषणा :: start_lvl () Walker_Nav_Menu :: start_lvl () के साथ संगत होनी चाहिए


11

मैं वर्तमान में एक वर्डप्रेस साइट पर काम कर रहा हूं और जब भी एडमिन में मैं अपीयरेंस> मेनस पेज पर जाता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:

ErrorException: रनटाइम नोटिस: Walker_Nav_Menu_Edit :: start_lvl () की घोषणा, Walker_Nav_Menu :: start_lvl () के साथ wp-admin / / nav-menu.php लाइन 203 में संगत होनी चाहिए।

ऐसा लगता है कि कुछ प्रकार की PHP संगतता समस्या है। मैं अपने स्थानीय देव मशीन पर PHP 5.3.10 चला रहा हूं।

इस समस्या को दूर करने का सबसे अच्छा तरीका क्या होगा?

जवाबों:


24

से class Walker_Nav_Menu:

function start_lvl( &$output, $depth = 0, $args = array() )

आपके बच्चे के वर्ग को एक ही हस्ताक्षर का उपयोग करना चाहिए : तीन तर्क, संदर्भ द्वारा पारित पहला। हर अंतर आपको मिली त्रुटि को बढ़ाएगा।

ध्यान दें कि $argsएक खाली सरणी में चूक, लेकिन आपको stdClassएक सरणी नहीं बल्कि एक उदाहरण मिलता है । यह वर्डप्रेस है।


मुझे पता है। यह एक वर्डप्रेस वर्ग है, यह मेरे लिए बदलने के लिए नहीं है। मेरा सवाल यह है कि समस्या के चारों ओर काम करने का सबसे अच्छा तरीका क्या है (अधिमानतः WP के इंटर्न के साथ ध्यान किए बिना) ...
ल्यूक

3
आपको वर्डप्रेस कोर के साथ मध्यस्थता करने के लिए नहीं कहा जा रहा है। जिस तरह से वर्डप्रेस मूल कक्षा में करता है, उससे मेल खाने के लिए आपको अपनी विस्तारित कक्षा में अपनी पद्धति को परिभाषित करने के तरीके को बदलना होगा।
s_ha_dum

1
समझ गया। त्रुटि मुझे फेंक रही थी। इसने मुझे यह धारणा दी कि समस्या WP कोर में थी, लेकिन यह हस्ताक्षर की परिभाषा की बात कर रहा है, जहां समस्या नहीं थी।
ल्यूक

9

कक्षा से Walker_Nav_Menuइस पंक्तियों को बदलें

function start_el(&$output, $category, $depth, $args) {

सेवा

function start_el(&$output, $category, $depth = 0, $args = array(), $current_object_id = 0) {

function end_lvl(&$output, $depth, $args) {

सेवा

function end_lvl(&$output, $depth = 0, $args = array()) {

function start_lvl(&$output, $depth, $args) {

सेवा

function start_lvl(&$output, $depth = 0, $args = array()) {

function end_el(&$output, $category, $depth, $args) {

सेवा

function end_el(&$output, $category, $depth = 0, $args = array()) {

क्या आप यह भी समझा सकते हैं कि कोड जोड़ने के बजाय यह कैसे काम करता है और यह स्वीकृत उत्तर से कैसे अलग है
bravokeyl

हाँ; इसका उत्तर 2015 में अपडेट किया गया है, और यह Wordpress लिंक
मोहम्मद अबीदी

हां, इसलिए जवाब का स्पष्टीकरण बहुत बढ़िया होगा।
ब्रावोकील

इसने मेरे गधे को बचाया, निश्चित रूप से सही उत्तर यदि आपके पास 4 त्रुटि संदेश हैं, फ़ंक्शन start_el, फ़ंक्शन end_el, फ़ंक्शन start_lvl, फ़ंक्शन end_lvl के लिए
स्टीफन

कक्षा वाकर_नव_मेनू हम कहाँ या कैसे जाते हैं ??? मुझे नहीं पता कि यह कैसे या कहाँ चुना गया है !!!!!
रीमैनियम

0

मेरे मामले में भी ऐसा ही था। आपको पुराने नेवी मेन्यू वॉकर कोड मिलते हैं, और यह कहता है कि जब आपको wp_debug चालू करना चाहिए (तब)

Menu_Frontend :: start_lvl (& $ आउटपुट, $ गहराई), Walker_Nav_Menu :: start_lvl (& $ आउटपुट, $ गहराई = 0, $ args = NULL) के साथ C: \ xampp \ htdocs \ शॉपनेट \ wp-content \ themes में संगत होनी चाहिए। लाइन 314 पर \ _ Viteeo \ hades_framework \ helper \ megamenu.php

जैसा कि आप देख सकते हैं कि आपको कुछ कोड लाइन बदलने की आवश्यकता है जो PHP आपको संदर्भित करता है। उपरोक्त त्रुटि सूचना में आपको start_lvl (और $ आउटपुट, $ गहराई) को start_lvl (और $ आउटपुट, $ गहराई = 0, $ args = NULL) से बदलना चाहिए ताकि अन्य प्रक्रियाएँ समान हों। लेकिन फ़ंक्शन ओपनिंग टैग {अंत में इस NULL) लिखना न भूलें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.