web-dev-qa-db-fra.com

Comment accéder à la variable globale $ wp_meta_boxes sur le front-end?

Existe-t-il un moyen de prendre la variable globale $wp_meta_boxes à utiliser dans l'interface frontale? Actuellement, le $wp_meta_boxes est accessible uniquement sur des pages d'administration spécifiques.

J'ai trouvé une question similaire à ce sujet . Sa solution consiste à récupérer les données via le hook do_meta_boxes, mais j'aimerais accéder à la variable sans JS/AJAX et dans un modèle frontal.

2
nonsensecreativity

J'ai bien peur que vous ne puissiez pas faire ce que vous voulez, sans AJAX.

Le problème réside dans le fait que toutes/la plupart des boîtes à méta sont ajoutées dans un contexte spécifique à l'administrateur.

Le hook add_meta_boxes action, par exemple, est l'endroit le plus courant (et le plus approprié) pour ajouter des méta-boîtes personnalisées. Et ce même crochet ne se déclenche que dans trois fichiers/pages wp-admin.

Et même si vous songez à lancer l'action ci-dessus sur le serveur par vous-même, vous ne pouvez pas accéder à toutes ces boîtes à méta qui sontaddeddans un contexte d'administrateur uniquement.

Pour ma part, j'ajoute des méta-boîtes personnalisées comme suit:

if ( is_admin() ) {
    add_action( 'add_meta_boxes', 'wpdev_154684_add_my_custom_meta_box' );
}

function wpdev_154684_add_my_custom_meta_box() {

    add_meta_box(
        /* ... */
    );
}

Bien sûr, il s’agit d’une simplification/abstraction forte de l’apparence réelle du code.


Alors quoi?

Puisque vous avez lié à ma question , je pense que vous avez déjà trouvéoneune façon d’obtenir des informations spécifiques à l’administrateur - à partir d’un autre endroit que le contexte actuel.

Je ne suis certainement pas en train de dire que c'est le seul moyen. C’est exactement ce que j’ai proposé (avec toute l’aide de Shazzad et G.M.), dans mon contexte très particulier.

2
tfrommen