2013-10-09 3 views
1

간단한 플러그인을 작성하고 있습니다. 내가 워드 프레스 관리자에서 그것을 활성화하면 메뉴가 작동합니다. 하지만 질문은 내가 어떻게 관리 플러그인을 만들었는지 내 페이지를 표시하는 것입니다.Wordpress plugin dir and files

나는 지난 3 일 동안이 문제에 어려움을 겪었지만 간단하게 올바른 방법을 찾지 못했습니다.

아래 코드.

vip.php

<?php 
/* 
Plugin Name: Testproject 0.0.1 
Plugin URI: http://none.com 
Description: Vip script for glamour bloggers 
Author: Z 
Version: 0.0.1 
Author URI: http://none.com 
*/ 

function vip_install() 
{ 
    global $wpdb; 
    $table = "vip_stat"; 
    $structure = "CREATE TABLE $table (
     id INT(9) NOT NULL AUTO_INCREMENT, 
     number INT(9) DEFAULT 0, 
     type TEXT(9) , 
     code INT(9) DEFAULT 0, 
     cost TEXT(9) , 
     time TEXT(15) , 
     used INT(9) DEFAULT 1, 
     utime TEXT(15) , 
     username TEXT(15) , 

    UNIQUE KEY id (id) 
    );"; 
    $wpdb->query($structure); 

    global $wpdb; 
    $table = "vip_sales"; 
    $structure2 = "CREATE TABLE $table (
     id INT(9) NOT NULL AUTO_INCREMENT, 
     type TEXT(9) , 
     date TEXT(9) , 
     price INT(9) DEFAULT 0, 

    UNIQUE KEY id (id) 
    );"; 
    $wpdb->query($structure2); 
} 

add_action('admin_menu', 'add_vip_menu'); 

//Menu stuff 

function add_vip_menu() 
{ 
    add_menu_page('Vip', 'Vip', 'manage_options', 'vip_stats', 'vip_stats'); 
    //Sub menu display 
    add_submenu_page('vip_stats', 'Stats', 'Stats', 'manage_options', 'vipstat', 'vip_status'); 
    add_submenu_page('vip_stats', 'SMS', 'SMS', 'manage_options', 'vipsms', 'vip_sms'); 
}; 

//Main menu code 

function vip_stats() 
{ 
    //Here i would like to point to this file to display 
    // /diagram/index.php 
}; 

//Sub code 
function vip_status() 
    ////here i want to show this file 
    // Here i want: /searchadmin/search.php 
}; 

function vip_sms() 
{ 
    //Here i want to show this file 
    // /sms/index.php 
}; 

function vip_uninstall() 
{ 
    global $wpdb; 

    $uninstall = "DROP TABLE `vip_stat` "; 
    $wpdb->query($uninstall); 

    $uninstall2 = "DROP TABLE `vip_sales` "; 
    $wpdb->query($uninstall2); 

    remove_menu_page(Vip); 
    mysqli_close($link); 
}; 

register_activation_hook(__FILE__, 'vip_install'); 

register_deactivation_hook(__FILE__, 'vip_uninstall'); 
+0

일반 팁 : 한 변수를 선언해야'global' ONCE 함수 내부. –

+0

별도의 PHP 파일에 각 코드 조각이 있으므로 적절한 위치에 '포함'하지 않는 것이 어떻습니까? – geomagas

+0

자신 만의 코드를 읽으려는 나머지 사용자들에게는 적절한 들여 쓰기와 코드 구성을 사용하십시오. Sublime 또는 NetBeans를 생각해보십시오. – brasofilo

답변

1

함수가 무엇인가 같았다 말 :

add_submenu_page('vip_stats', 'SMS', 'SMS', 'manage_options', 'vipsms', 'vip_sms'); 

function vip_sms() 
{ 
    ?> 
    <div class="wrap"> 
     <div id="icon-options-general" class="icon32"></div> 
     <h2>SMS</h2> 
     <div id="poststuff"> 
      <div id="post-body" class="metabox-holder columns-2"> 
       <!-- main content --> 
       <div id="post-body-content"> 
        <div class="meta-box-sortables ui-sortable"> 
         <div class="postbox"> 
          <h3><span>Main Content Header</span></h3> 
          <div class="inside"> 
           <?php _e('Content Space'); ?> 
          </div> <!-- .inside --> 
         </div> <!-- .postbox --> 
        </div> <!-- .meta-box-sortables .ui-sortable --> 
       </div> <!-- post-body-content --> 
       <!-- sidebar --> 
       <div id="postbox-container-1" class="postbox-container"> 
        <div class="meta-box-sortables"> 
         <h3><span>Sidebar Content Header</span></h3> 
         <div class="postbox"> 
          <?php _e('Content Space'); ?> 
         </div> <!-- .postbox --> 
        </div> <!-- .meta-box-sortables --> 
       </div> <!-- #postbox-container-1 .postbox-container --> 
      </div> <!-- #post-body .metabox-holder .columns-2 --> 
      <br class="clear"> 
     </div> <!-- #poststuff --> 
    </div> <!-- .wrap --> 
    <?php 
} 

는 단순히 PHP 파일에 모든 HTML 출력을 이동하고 include_once 수행

add_submenu_page('vip_stats', 'SMS', 'SMS', 'manage_options', 'vipsms', 'vip_sms'); 

function vip_sms() 
{ 
    include_once 'includes/sms.php'; 
} 

을 파일 /your-plugin/includes/sms.php은 다음과 같습니다.

<?php 
/* Included file sms.php */ 
?> 
<div class="wrap"> 
    <div id="icon-options-general" class="icon32"></div> 
    <h2>Name String</h2> 
    <div id="poststuff"> 
     <div id="post-body" class="metabox-holder columns-2"> 
      <!-- main content --> 
      <div id="post-body-content"> 
       <div class="meta-box-sortables ui-sortable"> 
        <div class="postbox"> 
         <h3><span>Main Content Header</span></h3> 
         <div class="inside"> 
          <?php _e('Content Space'); ?> 
         </div> <!-- .inside --> 
        </div> <!-- .postbox --> 
       </div> <!-- .meta-box-sortables .ui-sortable --> 
      </div> <!-- post-body-content --> 
      <!-- sidebar --> 
      <div id="postbox-container-1" class="postbox-container"> 
       <div class="meta-box-sortables"> 
        <h3><span>Sidebar Content Header</span></h3> 
        <div class="postbox"> 
         <?php _e('Content Space'); ?> 
        </div> <!-- .postbox --> 
       </div> <!-- .meta-box-sortables --> 
      </div> <!-- #postbox-container-1 .postbox-container --> 
     </div> <!-- #post-body .metabox-holder .columns-2 --> 
     <br class="clear"> 
    </div> <!-- #poststuff --> 
</div> <!-- .wrap --> 

Frank Bultge의 관리자 스타일 WordPress Admin Style.

관련 : Is there any plugin development framework?

+0

아주 멋진 코드 조각. 정말 고맙습니다!! 지난 3 일 동안 올바른 방법으로 Google을 시도했습니다. 이것은 나를 도왔고 이해하기가 너무 쉬웠습니다. 너무 시간을 내 주셔서 고마워요. –