Skip to main content
added 51 characters in body
Source Link
dannyw24
  • 451
  • 1
  • 6
  • 16

I've tried debugging with <?php var_dump($link); ?> which displays this on the frontend string(0) ""

I've tried debugging with <?php var_dump($link); ?>

I've tried debugging with <?php var_dump($link); ?> which displays this on the frontend string(0) ""

added 54 characters in body
Source Link
dannyw24
  • 451
  • 1
  • 6
  • 16

Here is the code that creates my metabox on my CPT named clients it displays fine and seems to keep the value input upon clicking update. The problem is with displaying the value saved within the metabox on a page.

I've tried outputting the data both within a loop and out the loop switching between get_the_ID() and $post_id

I've tried debugging with <?php var_dump($link); ?>

Here is the code that creates my metabox on my CPT named clients it displays and seems to keep the value input upon clicking update.

I've tried outputting the data both within a loop and out the loop switching between get_the_ID() and $post_id

Here is the code that creates my metabox on my CPT named clients it displays fine and seems to keep the value input upon clicking update. The problem is with displaying the value saved within the metabox on a page.

I've tried outputting the data both within a loop and out the loop switching between get_the_ID() and $post_id

I've tried debugging with <?php var_dump($link); ?>

Source Link
dannyw24
  • 451
  • 1
  • 6
  • 16

Meta Box value not been pulled in

Here is the code that creates my metabox on my CPT named clients it displays and seems to keep the value input upon clicking update.

I've tried outputting the data both within a loop and out the loop switching between get_the_ID() and $post_id

To output the meta box value in the loop I'm doing

// Get Meta data
$link = get_post_meta(get_the_ID(), 'link_url', true); ?>
<li><a href="<?php echo $link; ?>"><?php the_post_thumbnail('clients'); ?></a></li>

Meta box Code

/**
     * Adds a box to the main column on the Post and Page edit screens.
     */
    function portfolio_link_add_meta_box() {

    $screens = array( 'clients' );

    foreach ( $screens as $screen ) {

        add_meta_box(
            'portfolio_logo_link',
            __( 'Logo Link', 'logo_link_textdomain' ),
            'logo_link_meta_box_callback',
            $screen
        );
    }
}

add_action( 'add_meta_boxes', 'portfolio_link_add_meta_box' );

function logo_link_meta_box_callback( $post ) {

    // Add an nonce field so we can check for it later.
    wp_nonce_field( 'logo_link_meta_box', 'logo_link_meta_box_nonce' );

    /*
     * Use get_post_meta() to retrieve an existing value
     * from the database and use the value for the form.
     */
    $value = get_post_meta( $post->ID, 'link_url', true );

    echo '<label for="link">';
    _e( 'Add The Logo Link', 'link_logo_textdomain' );
    echo '</label> ';
    echo '<input type="text" id="link" name="link" value="' . $value . '" size="25" />';
}

/**
 * When the post is saved, saves our custom data.
 *
 * @param int $post_id The ID of the post being saved.
 */
function logo_link_save_meta_box_data( $post_id ) {

    /*
     * We need to verify this came from our screen and with proper authorization,
     * because the save_post action can be triggered at other times.
     */

    // Check if our nonce is set.
    if ( ! isset( $_POST['logo_link_meta_box_nonce'] ) ) {
        return;
    }

    // Verify that the nonce is valid.
    if ( ! wp_verify_nonce( $_POST['logo_link_meta_box_nonce'], 'logo_link_meta_box' ) ) {
        return;
    }

    // If this is an autosave, our form has not been submitted, so we don't want to do anything.
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }

    // Check the user's permissions.
    if ( isset( $_POST['post_type'] ) && 'page' == $_POST['post_type'] ) {

        if ( ! current_user_can( 'edit_page', $post_id ) ) {
            return;
        }

    } else {

        if ( ! current_user_can( 'edit_post', $post_id ) ) {
            return;
        }
    }

    /* OK, it's safe for us to save the data now. */
    
    // Make sure that it is set.
    if ( ! isset( $_POST['link'] ) ) {
        return;
    }

    // Sanitize user input.
    $my_data = sanitize_text_field( $_POST['link'] );

    // Update the meta field in the database.
    update_post_meta( $post_id, 'link_url', $my_data );
}
add_action( 'save_post', 'logo_link_save_meta_box_data' );