クラス メソッドをコールバック関数のパラメーターに渡す方法を探しています。
私は通常次のように使用create_function()
しますが、遅くてデバッグが難しいと聞いています。
add_action('init', create_function('', '$o = new AdminPageClass;'));
class AdminPageClass {
function __construct() {
add_action('admin_menu', array(&$this, 'admin_menu'));
}
function admin_menu() {
add_options_page(
'Sample Admin Page Class',
'Sample Admin Page Class',
'manage_options',
'sample_admin-page_class',
array(&$this, 'admin_page'));
}
function admin_page() {
?>
<div class="wrap">
<h1>Hi there</h1>
<p>Hello World!</p>
</div>
<?php
}
}
もちろん、このような追加機能を使用して実行できます。ただし、できればそれなしでやりたいです。
add_action('init', 'load_admin_page_class');
function load_admin_page_class() {
$o = new AdminPageClass;
}
また、その前にクラス オブジェクトをインスタンス化すると可能になりますが、余分な行も作成されます。
$o = new AdminPageClass;
add_action('admin_menu', array(&$o, 'admin_menu'));
class AdminPageClass {
function admin_menu() {
add_options_page(
'Sample Admin Page Class',
'Sample Admin Page Class',
'manage_options',
'sample_admin-page_class',
array(&$this, 'admin_page'));
}
function admin_page() {
?>
<div class="wrap">
<h1>Hi there</h1>
<p>Hello World!</p>
</div>
<?php
}
}
私はいつも別々のファイルでクラスを定義するので、メインのプラグイン ファイルの行を減らす最初の方法を好みます。ただし、前述のとおり、の使用はcreate_function()
避ける必要があります。
あなたの情報に感謝します。