2013-05-30 2 views
1

WordPress에서 다음과 같은 오류 메시지가 표시됩니다.WordPress에서 새로 추가 된 콘텐츠를 볼 수 없습니다.

You do not have sufficient permissions to access this page. 

나는 WordPress에 익숙하지 않으며 WP 플러그인을 개발하는 방법을 배우고 있습니다.

기본적으로 관리자 메뉴에서 플러그인을로드하고 활성화했습니다.

이 코드는 init.php 파일에 있습니다.

function oscimp_admin() { 
       include('oscommerce_import_admin.php'); 
      } 
      //when the menu is click 4th parameter will be trugger 
      function oscimp_admin_actions() { 
       add_options_page("OSCommerce Product Display", "Menuka Product Display", 1, "OSCommerce Product Display", "oscimp_admin"); 
      } 

      add_action('admin_menu', 'oscimp_admin_actions'); 

    I have included following code in oscommerce_import_admin.php file 
    <?php 
    if($_POST['oscimp_hidden'] == 'Y') { 
     //Form data sent 
     $dbhost = $_POST['oscimp_dbhost']; 
     update_option('oscimp_dbhost', $dbhost); 

     $dbname = $_POST['oscimp_dbname']; 
     update_option('oscimp_dbname', $dbname); 

     $dbuser = $_POST['oscimp_dbuser']; 
     update_option('oscimp_dbuser', $dbuser); 

     $dbpwd = $_POST['oscimp_dbpwd']; 
     update_option('oscimp_dbpwd', $dbpwd); 

     $prod_img_folder = $_POST['oscimp_prod_img_folder']; 
     update_option('oscimp_prod_img_folder', $prod_img_folder); 

     $store_url = $_POST['oscimp_store_url']; 
     update_option('oscimp_store_url', $store_url); 
     ?> 
     <div class="updated"><p><strong><?php _e('Options saved.'); ?></strong></p></div> 
     <?php 
    } else { 
     //Normal page display 
     $dbhost = get_option('oscimp_dbhost'); 
     $dbname = get_option('oscimp_dbname'); 
     $dbuser = get_option('oscimp_dbuser'); 
     $dbpwd = get_option('oscimp_dbpwd'); 
     $prod_img_folder = get_option('oscimp_prod_img_folder'); 
     $store_url = get_option('oscimp_store_url'); 
    } 


?>  

<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> 

내가 관리 메뉴 링크로 이동하면 위에서 언급 한 오류가 발생합니다. 이 문제를 해결할 단서가 있습니까?

답변

0

add_options_page에 대한 호출이 설정에서 새 옵션을 추가한다고 생각하지만 클릭하면 문제가 발생합니다.

official documentation을 확인하면 네 번째 매개 변수가 menu_slug이고 URL에 추가되는 것을 볼 수 있습니다 (이 경우 options- general.php가 표시됨). 그래서 첫 번째 일은 좀 더 "우호적 인 URL"로 바꾸는 것입니다. 예를 들어, "OSCommerce Product Display"를 "oscommerce-product-display"로 전환하려고 시도하십시오.

또한 세 번째 매개 변수는 기능이라고하며 이는 사용자가 수행 할 수 있어야하는 동작을 나타내는 문자열이어야합니다. 관리자 만이 옵션에 액세스 할 수있게하려면 1 대신에 'install_plugins'를 사용할 수 있습니다. 여기에 전체 역할 및 기능 목록을 볼 수 있습니다. http://codex.wordpress.org/Roles_and_Capabilities#Capability_vs._Role_Table

그래서 메뉴를 추가하는 행 그냥 oscimp_admin가 유효한 콜백 (당신이 필요로하는 페이지를 렌더링하는 기능) 인 것을 확인하기 위해 필요에 옵션은 그 시점에서

add_options_page("OSCommerce Product Display", "Menuka Product Display", 'install_plugins', "oscommerce-product-display", "oscimp_admin"); 

같은 것을하게한다.

+0

감사합니다. 답은 저에게 달렸습니다. – newday

+0

@pottuamman 좋아, 나는 그것이 기쁘다 :) – mishu

관련 문제