web-dev-qa-db-ja.com

どうやってメタボックスタグに結び付けることができますか?

入力data-wp-taxonomyの前に、メタボックスタグにメッセージを追加する方法を探していました。 tags および metabox というタグで検索すると、 14個の結果しか入力できませんでした

data-wp-taxonomyのコアを調査すると、meta-boxes.phpファイルとpost_tags_meta_boxのための関数が見つかりました。それが 新しい投稿メタボックスにリマインダー/メモを追加する方法 ですが、その質問は5年以上前のものですjQueryを使ってそれに:

function load_my_alerts(){
      wp_register_script( 
        'my_alerts', 
        get_template_directory_uri() . '/js/alerts.js', 
        array( 'jquery' )
    );
    wp_enqueue_script( 'my_alerts' );
}
add_action('admin_enqueue_scripts', 'load_my_alerts');

メタボックスタグの入力の前にメッセージを追加する別の方法はありますか?

これは、投稿タグメタボックスに固有の回避策です。

post_tag分類法のカスタムメタボックスコールバックを登録することができます。

add_filter( 'register_taxonomy_args', function( $args, $taxonomy )
{
    // Replace the original (post_tag) metabox callback with our wrapper
    if( 'post_tag' === $taxonomy )
        $args['meta_box_cb'] = 'wpse_post_tags_meta_box';

    return $args;

}, 10, 2 );

私たちのカスタムコールバックはどこにありますか。

function wpse_post_tags_meta_box( $post, $box )
{
    // Custom action
    do_action( 'wpse_before_post_tags_meta_box', $post, $box );

    // Original callback. Note it will echo the stuff, not return it
    post_tags_meta_box( $post, $box );
}

これで、必要に応じてカスタムのwpse_before_post_tags_meta_boxフックにフックできます。

post_tags_meta_box()関数の中に何かを注入する必要があるなら、出力バッファリングを使ってそれを文字列として扱うことを試みるかもしれません。その機能を複製することも可能ですが、その機能は将来簡単に変更される可能性があります。それで可能ならば私はそれを避けます。

5
birgire