0

I would like to show certain Custom Fields below my Editor. At the moment I only have athe dropdown field but there's so many metas inside which I am not using. By publishing 60-100 posts a day it is really time consuming searching for the respective custom field. enter image description here

I found the following code somewhere to permenantly display the Custom Field but it does not seem to work.

add_action( 'add_meta_boxes_tender', 'lamosty_add_tender_meta_data' );

function lamosty_add_tender_meta_data( WP_Post $tender ) {
        // Add the meta data you want the custom post type to have
    $tender_meta_data = [
        'briefing',
        'closing',
        'rfirfqnumber',
        'download'
    ];

    foreach ( $tender_meta_data as $meta ) {
        add_post_meta( $tender->ID, $meta, '', true );
    }
}
?>

My desired outcome is that every time I create a new Post the respective Custom Fields are always there and I don't need to look them up in the dropdown. For example like the picture below.

Pleas note that for every new post the values of the Custom Field change!

enter image description here

Do I or does my request make sense?

0

this should work but you overwrite the values for existing objects.

to add default values only for new objects try that :

$postType = "tender";

add_action( 'save_post_' . $postType, function ($post_ID, \WP_Post $tender, $update) {

    if (!$update) {
        // default value for new object

        // Add the meta data you want the custom post type to have
        $tender_meta_data = [
            'briefing',
            'closing',
            'rfirfqnumber',
            'download',
        ];

        foreach ( $tender_meta_data as $meta ) {
            add_post_meta( $tender->ID, $meta, '', true );
        }


        return;
    }



}, 10, 3);
  • overwrite as in deleting the value? – mad2kx Apr 21 '18 at 6:54
  • yes, when you edit an existing object, your code is run and the 4 values are set to ''. – mmm Apr 21 '18 at 8:54
  • OK that's not good. Is there a way around it without overwriting it? I think the other mistake is that I am "adressing: the code to a CPT but I am using normal posts, not CPT. – mad2kx Apr 21 '18 at 9:22
  • my code doesn't overwrite that and create only values for new objects. and to use with regular posts, start with $postType = "post"; – mmm Apr 21 '18 at 9:45
  • OK thanks a lot. Tested it on another installation which is less important and it seems to work. Nothing got deleted so far – mad2kx Apr 21 '18 at 16:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.