web-dev-qa-db-ja.com

WPMVCで新しいメニュー/サブメニューページを追加する方法

私は WPMVC にまったく慣れていません。プラグインを作成するためのチュートリアルに従ってください。今私はVenuesを検索するための検索ページを追加しようとしています(それは彼らの例から来ています!)。このページはVenuesメニューのサブメニューページとして現れるべきです。 search.phpフォルダーにapp/views/admin/venue/searchという名前のファイルを作成しました。私は今どうすればいい?グーグルはあまり役に立ちませんでした!

これ(およびWPMVCを使いこなすために習熟者が習得すべきその他のこと)に関するヘルプは大歓迎です。

3

コアファイルを詳しく調べた後、submenuページを追加する方法を見つけました。誰かがそれに立ち往生している場合、これが段階的な解決策です!

Sampleというサブメニューページを追加したいとしましょう。

1.まず、プラグインのapp/config/bootstrap.phpファイル(存在しない場合は手動で作成する必要があります)に、次のコードを追加します。これは新しいページをsubmenu親メニュー項目のvenuesとして追加します。

<?php
//sample is appended to the venues array, meaning it will be a submenu page of venues
MvcConfiguration::append(array(
'AdminPages' => array(
    'venues' => array(
        'add',
        'delete',
        'edit',
        'sample'
        )
    )
));
?>

2.次に、app/controllers/admin/admin_venues_controller.phpに次の関数を追加します。上記の配列のページ名と同じsampleであることに注意してください。

function sample() {
    //this array will be available as $values in the sample.php file
    $vals = array('great' => 'Done', 'Nice' => 'Finally');
    $this->set('values', $vals);
}

3.実際のページコンテンツファイルを作成し、sample.phpフォルダにapp/views/admin/venues/(名前に注意)ファイルを作成します。

<?php
    echo '<h2>'.MvcInflector::titleize($this->action).'</h2>';
    //remember the values variable set in the controller? 
    foreach($values as $i => $val){ ?>
        echo $i.' = '.$val;
    }
?>

それはほとんどそれです!私はモデルを作成しなくてもトップレベルのメニューページを作成しようとしています(モデルはデフォルトでトップレベルページを取得します)。解決したらこの回答を更新します。

注:WPMVCの作成者であるTom Bennerに電子メールを送っても役に立ちませんでした。 ;)

3

プラグインのメインファイルplugin_name.phpにアクションフックを追加して、メニューの詳細を表示します。モデルを生成せずに、もちろん管理メニューを作成できます。

これが/plugins/my-plugin/my_plugin.phpのコードです。

add_action( 'admin_menu', 'my_custom_menu_page' );    
function my_custom_menu_page() {
    add_menu_page( 
        'My Menu', 
        'My Menu', 
        'manage_options', 
        'myplugin/myplugin-admin.php', 
        '', 
        plugins_url( 'myplugin/images/icon.png' ), 
        6 
    );
}

カスタムメニューにデフォルトのWordPressアイコンを使用するには、画像の場所を空白のままにします。

もちろん、同じ方法でサブメニューを追加することも、bootstrap.phpを使用することもできます。

下の写真では、この方法で「私のメニュー」を追加しました。

enter image description here

0