web-dev-qa-db-ja.com

WPAlchemyで「管理者専用」のメタボックスを作成する。 current_user_canを使用するとフロントエンドで致命的なエラーが発生する

私はWPAlchemyを使って "admin only"メタボックスを作成しようとしています。例えばボックスは、「機能投稿」チェックボックスおよび他の機能を含み得る。

管理者だけにこのメタボックスを表示し、それでも正しく機能させるにはどうすればよいですか。私は現在以下のコードを使用していますが、フロントエンドの内側にあるものすべての値をエコーし​​ようとすると、 "致命的なエラー:オブジェクトではないメンバ関数the_meta()の呼び出し"が表示されます。 current_user_canを使用しない場合はすべてが意図したとおりに機能し、adminとしてログインしてフロントエンドを表示している場合も機能します。

if (current_user_can('administrator')) {
$custom_admin_mb = new WPAlchemy_MetaBox(array(
    'id' => '_custom_admin_meta',
    'title' => 'Admin only',
    'template' => TEMPLATEPATH . '/custom/admin_meta.php',
));

}

1
Andrew

以下を試してください。

$custom_admin_mb = new WPAlchemy_MetaBox(array(
    'id' => '_custom_admin_meta',
    'title' => 'Admin only',
    'template' => get_stylesheet_directory() . '/custom/admin_meta.php',
    'output_filter' => 'my_output_filter',
));

function my_output_filter() {
    if (current_user_can('administrator')) return true;
    return false;
}
1
farinspace