0

I am trying to create 2 raido buttons as a category custom field, and in function.php I do:

$feat = get_term_meta( $tag->term_id, '_feat', true ); 

<input name="feat" type="radio" value="0" <?php checked( '0' ); ?> />Si<br>
<input name="feat" type="radio" value="1" <?php checked( '1' ); ?> />No

And then I do

if ( isset( $_POST['feat'] ) )
  update_term_meta( $_POST['tag_ID'], '_feat', $_POST['feat'] );

But I always get "No" as checked

1 Answer 1

2

The purpose of checked() is to output a checked="checked" attribute based on a current value. By using it the way you're using it there you're forcing Si to never be checked and No to always be checked.

So what you want to do is use both arguments of checked() to compare the value of the input to the current value:

<input name="feat" type="radio" value="0" <?php checked( $feat, '0' ); ?> />Si<br>
<input name="feat" type="radio" value="1" <?php checked( $feat, '1' ); ?> />No

With that change if $feat is '0' then the first checked will run, and if it's '1' the second will run.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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