2010-11-19 11 views
13

मैंने अभी WordPress प्लगइन विकास सीखना शुरू कर दिया है और जब मैं व्यवस्थापक से अपने प्लगइन मेनू तक पहुंचता हूं तो यह त्रुटि मिलती है।प्लगइन विकसित करते समय वर्डप्रेस त्रुटि - "आपके पास इस पृष्ठ तक पहुंचने के लिए पर्याप्त अनुमति नहीं है।"

यहाँ कोड है: importer.php

//*************** Admin function *************** 
function oscimp_admin() { 
    include('importer_admin.php'); 
} 

function oscimp_admin_actions() { 
    add_options_page("OSCommerce Product Display", "OSCommerce Product Display", 1, "OSCommerce Product Display", "oscimp_admin"); 
} 

add_action('admin_menu', 'oscimp_admin_actions'); 

importer_admin.php

<div class="wrap"> 
<?php echo "<h2>" . __('OSCommerce Product Display Options', 'oscimp_trdom') . "</h2>"; ?> 

<form name="oscimp_form" method="post" action="<?php echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']); ?>"> 
    <input type="hidden" name="oscimp_hidden" value="Y"> 
    <?php echo "<h4>" . __('OSCommerce Database Settings', 'oscimp_trdom') . "</h4>"; ?> 
    <p><?php _e("Database host: "); ?><input type="text" name="oscimp_dbhost" value="<?php echo $dbhost; ?>" size="20"><?php _e(" ex: localhost"); ?></p> 
    <p><?php _e("Database name: "); ?><input type="text" name="oscimp_dbname" value="<?php echo $dbname; ?>" size="20"><?php _e(" ex: oscommerce_shop"); ?></p> 
    <p><?php _e("Database user: "); ?><input type="text" name="oscimp_dbuser" value="<?php echo $dbuser; ?>" size="20"><?php _e(" ex: root"); ?></p> 
    <p><?php _e("Database password: "); ?><input type="text" name="oscimp_dbpwd" value="<?php echo $dbpwd; ?>" size="20"><?php _e(" ex: secretpassword"); ?></p> 
    <hr /> 
    <?php echo "<h4>" . __('OSCommerce Store Settings', 'oscimp_trdom') . "</h4>"; ?> 
    <p><?php _e("Store URL: "); ?><input type="text" name="oscimp_store_url" value="<?php echo $store_url; ?>" size="20"><?php _e(" ex: http://www.yourstore.com/"); ?></p> 
    <p><?php _e("Product image folder: "); ?><input type="text" name="oscimp_prod_img_folder" value="<?php echo $prod_img_folder; ?>" size="20"><?php _e(" ex: http://www.yourstore.com/images/"); ?></p> 


    <p class="submit"> 
    <input type="submit" name="Submit" value="<?php _e('Update Options', 'oscimp_trdom') ?>" /> 
    </p> 
</form> 
</div> 

कोई एक पता लगा सकते हैं मैं गलत क्या कर रहा हूँ।

उत्तर

16

समस्या चौथा पैरामीटर है। मैंने _ के साथ चौथे पैरामीटर से रिक्त स्थान हटा दिए हैं और यह काम करता है।

आपकी मदद के लिए धन्यवाद ...

+0

मुझे खेद है कि मुझे कहना है: इसके लिए धन्यवाद! ;) – swdev

0

oscimp_admin() फ़ंक्शन के अंदर अपना importer_admin.php फ़ाइल कोड लिखें या php file_get_contents फ़ंक्शन का उपयोग करें।

0

मैंने बस बेस नाम (_ FILE _) के साथ add_options_page में चौथा पैरामीटर बदलने की कोशिश की; आपके मामले में "importer.php" के साथ एक ही मूल्य होना चाहिए। मुझे नहीं पता कि इसे वास्तव में क्या बदला जाना चाहिए, लेकिन यह काम है!

शुभकामनाएं!

6

वास्तविक ट्यूटोरियल HERE को खोजने जा सकता है। और इसे वर्डप्रेस के 2.9.2 संस्करण के साथ काम करना चाहिए, कम से कम यह मेरे लिए काम करता है। लेकिन, जब मैं संस्करण 3.1 के साथ ट्यूटोरियल के कोड को चलाने का प्रयास करता हूं तो यह मुझे एक ही त्रुटि देता है। लेकिन अविनाश लाइन द्वारा उल्लेख के रूप में

add_options_page(“OSCommerce Product Display”, “OSCommerce Product Display”, 1, “OSCommerce Product Display”, “oscimp_admin”); 

add_options_page(“OSCommerce Product Display”, “OSCommerce Product Display”, 1, “OSCommerce_Product_Display”, “oscimp_admin”); 

के साथ बदलें जाना चाहिए और फिर इसे ठीक से काम करता है। उम्मीद है कि यह किसी की मदद करता है।

अद्यतन:

के रूप में ठीक ही कम-से-फ्रांसिस्को Corrales द्वारा कहा टिप्पणी आप प्लगइन & को निष्क्रिय करने के लिए विचार कर सकते हैं इसे फिर से सक्रिय करें यदि आप परिवर्तन नहीं देख रहे हैं।

+0

भयानक ट्यूटोरियल। इस बदलाव ने मेरे लिए कोई फर्क नहीं पड़ता। – JohnnyBizzle

+1

कृपया इसे और स्पष्ट करें, मैं उन पंक्तियों पर अभिनीत 5 मिनट व्यतीत करता हूं। यह जोड़ना महत्वपूर्ण है कि आपको प्लगइन को निष्क्रिय करने की आवश्यकता है, और उसे सक्रिय करें। –

+0

धन्यवाद फ्रांसिस्को Corrales। उत्तर में अपनी टिप्पणी जोड़ा गया। बीटीडब्ल्यू मुझे पता है कि आप इस प्लगइन के लिए किस WP संस्करण का उपयोग कर रहे हैं? – enam

0

हाँ, आगे पैरामीटर अनोखा नाम है, और कोई भी अद्वितीय पहचानकर्ता यह अंतरिक्ष को शामिल करना चाहिए के लिए, यही कारण है कि इस मुद्दे को :)

1

Wordpress 3.6.1 पर भी अब और नहीं काम को रेखांकित। समारोह अब होना चाहिए: इस त्रुटि के

function oscimp_admin_actions() { 
    add_options_page("OSCommerce Product Display", "OSCommerce Product Display", 1, "OSCommerceProductDisplay", "oscimp_admin"); 
} 
3

एक संभावित कारण वास्तव में, admin_init कार्रवाई हुक पर व्यवस्थापक मेनू दर्ज की है admin_menu के बजाय। यह मामला यहां नहीं है, लेकिन यह जानकारी साझा करना अच्छा है, क्योंकि इसे समझने में मुझे घंटों लग गए।

तो हमेशा इस तरह अपने मेनू रजिस्टर (और अद्वितीय स्लग से रिक्त स्थान या किसी भी अन्य गैर अक्षरांकीय अक्षर को दूर - समारोह add_options_page() के पैरामीटर):

प्रारंभ में

add_action('admin_menu', 'your_function'); 

और फिर (फ़ंक्शन मौजूद होने पर पहले जांचें)

if (!function_exists('your_function')) { 
    function your_function() { 
     add_options_page(__("Option page name","your-text-domain"), __("Option page name","your-text-domain"), 'manage_options', 'your-page-unique-slug', 'other_function'); 
    } 
} 

उपयोग पर ध्यान दें एफ __() सीधे शीर्षक रखने के बजाय फ़ंक्शन - आपके प्लग-इन के अंतर्राष्ट्रीयकरण के लिए आवश्यक है (और यदि कोई अंतर्राष्ट्रीयकरण फाइल नहीं है तो यह उद्धृत पाठ प्रदर्शित करता है)।

संबंधित मुद्दे