web-dev-qa-db-fra.com

Créer une méta-boîte "admin only" avec WPAlchemy. Obtention d'une erreur fatale sur le serveur frontal en utilisant current_user_can

J'essaie de créer une méta-boîte "admin only" à l'aide de WPAlchemy. La boîte, par exemple, peut contenir une case à cocher "post-fonctionnalité" et d'autres fonctionnalités.

Comment puis-je afficher cette méta-boîte uniquement pour l'administrateur, tout en fonctionnant correctement? J'utilise actuellement le code suivant ci-dessous, mais je reçois le message "Erreur fatale: appel d'une fonction membre the_meta () sur un non-objet" lors d'une tentative d'écho de la valeur de tout ce qui se trouve à l'intérieur du serveur. Tout fonctionne comme prévu si je n'utilise pas current_user_can et fonctionne également si je suis connecté en tant qu'administrateur et que je consulte l'interface frontale.

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

essayez ce qui suit:

$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