web-dev-qa-db-ja.com

add_meta_boxコールバックが呼び出されていません

私は先週、カスタム投稿タイプを作る最初のプラグインを作成しました。これがうまくいったので、私はすでに持っているコードをコピーして貼り付け、別の投稿タイプになるように修正しました。ただし、何らかの理由で、add_meta_box用に設定したコールバックが呼び出されていません。誰もがこれがなぜなのか私に言うことができます。

/**
 * Adds a meta box to the post editing screen
/***************************************************************************/
function package_custom_meta()
{
    add_meta_box( 'package_meta', __( 'Package Title', 'package_textdomain' ), 'package_meta_callback', 'package' , 'high' );

    echo "package_custom_meta CALLED";
}

add_action( 'add_meta_boxes', 'package_custom_meta' );

/**
 * Outputs the content of the meta box
/***************************************************************************/
function package_meta_callback( $post )
{
    echo "package_meta_callback CALLED";

    wp_nonce_field( basename( __FILE__ ), 'package_nonce' );
    $package_stored_meta = get_post_meta( $post->ID );
    ?>

    <p>
        <label for="meta-package-512mb" class="package-row-title"><?php _e( '512MB RAM', 'package_textdomain' )?></label>
        <input type="text" name="meta-package-512mb" id="meta-package-512mb" value="<?php if ( isset ( $package_stored_meta['meta-package-512mb'] ) ) echo $package_stored_meta['meta-package-512mb'][0]; ?>" />
    </p>

    <p>
        <label for="meta-package-1gb" class="package-row-title"><?php _e( '1GB RAM', 'package_textdomain' )?></label>
        <input type="text" name="meta-package-1gb" id="meta-package-1gb" value="<?php if ( isset ( $package_stored_meta['meta-package-1gb'] ) ) echo $package_stored_meta['meta-package-1gb'][0]; ?>" />
    </p>

    <?php
}
2
Aidan Knight

私たちもエラーを見逃していたようです。

Add_meta_boxを呼び出すときに、コンテキストの引数をスキップして優先順位に直接進みました。 "high"はコンテキスト引数に使用可能な文字列ではないため、この関数は暗黙のうちに失敗します。

コンテキストの文字列を追加すると、それが修正されます。

add_meta_box( 'package_meta', __( 'Package Title', 'package_textdomain' ), 'package_meta_callback', 'package', 'normal', 'high' );

2
Matt Keys

私にとってはscreen paramがうまくいったので空文字列

add_meta_box(
        'tribe_events_event_details',
        'Post Events Calendar',
        'bw_events_chooser_box',
        '', // screen
        'normal',
        'high'
    );
1
michalzuber