私は WPMVC にまったく慣れていません。プラグインを作成するためのチュートリアルに従ってください。今私はVenues
を検索するための検索ページを追加しようとしています(それは彼らの例から来ています!)。このページはVenues
メニューのサブメニューページとして現れるべきです。 search.php
フォルダーにapp/views/admin/venue/search
という名前のファイルを作成しました。私は今どうすればいい?グーグルはあまり役に立ちませんでした!
これ(およびWPMVCを使いこなすために習熟者が習得すべきその他のこと)に関するヘルプは大歓迎です。
コアファイルを詳しく調べた後、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に電子メールを送っても役に立ちませんでした。 ;)
プラグインのメインファイル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
を使用することもできます。
下の写真では、この方法で「私のメニュー」を追加しました。