wake-up-neo.com

add_meta_box Rückruf wird nicht aufgerufen

Ich habe letzte Woche mein erstes Plugin erstellt, das einen benutzerdefinierten Beitragstyp erstellt. Da dies funktionierte, kopierte ich den Code, den ich bereits hatte, und änderte ihn in einen anderen Beitragstyp. Aus irgendeinem Grund wird der von mir für add_meta_box festgelegte Rückruf jedoch nicht aufgerufen. Kann mir jemand sagen warum das so ist, wo ich es mir immer wieder ohne Glück angeschaut habe was auch immer.

/**
 * 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

Sieht so aus, als hätten wir beide den Fehler verpasst, weil ich ihn auch zuerst nicht gesehen habe.

Bei Ihrem Aufruf von add_meta_box haben Sie das Argument für den Kontext übersprungen und sind direkt zur Priorität übergegangen. "high" ist keine verfügbare Zeichenfolge für das Kontextargument, und dies führt anscheinend dazu, dass die Funktion im Hintergrund fehlschlägt.

Das Hinzufügen der Zeichenfolge für den Kontext behebt Folgendes:

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

2
Matt Keys

Bei mir hat der leere String als screen param funktioniert

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