web-dev-qa-db-ja.com

フロントエンドでグローバル$ wp_meta_boxes変数にアクセスするにはどうすればいいですか?

フロントエンドで使われるグローバルな$wp_meta_boxes変数を使う方法はありますか?現在$wp_meta_boxesは特定の管理者ページでのみアクセス可能です。

これについて 似たような質問を見つけました 。その解決策はdo_meta_boxesフックを通してデータを取得することですが、私はJS/AJAXなしで、そしてフロントエンドのテンプレートで変数にアクセスしたいと思います。

2

AJAXがなければ、あなたは自分がしていることをやり遂げることができないのです。

問題は、メタボックスのすべて/ほとんどが管理者固有のコンテキストで追加されるという事実にあります。

たとえば、 add_meta_boxes actionフックは、カスタムメタボックスを追加するための最も一般的な(そして適切な)場所です。そして、この非常にフックは3つのwp-adminファイル/ページだけで発射されます。

フロントエンドで上記のアクションを自分で起動することを考えても、管理コンテキストでのみ追加されているすべてのメタボックスを取得することはできません。 。

私は、自分のために、カスタムメタボックスを次のように追加します。

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(
        /* ... */
    );
}

もちろん、これはコードが実際にどのように見えるかを強く単純化/抽象化したものです。


それで、何?

あなたは 私の質問 にリンクしていたので、あなたはすでに管理者固有のものを入手する1つの方法を見つけたと思います - 実際以外の場所からコンテキスト。

これが唯一の方法だとは言っていません。私の非常に特別な状況のために、これは私が思いついたことです(ShazzadとG.M.からのすべての助けを借りて)。

2
tfrommen