2

How do I check an array of $curauth user data? I need to check to see if one or more $curauth fields have data, and if so, print some html. This throws an array error:

    <?php if ( !empty( array ( $curauth->facebook, $curauth->linkedin, $curauth->twitter)))
{ echo 'echo me if any $curauth info exists for the fields in the array above'; } ?>

Update - this works:

<?php  if (!empty ($curauth->facebook) || ($curauth->linkedin) || ($curauth->twitter))
{ echo 'echo me if any $curauth info exists for the fields in the array above';  }  ?>

1 Answer 1

1

Try

<?php 
if ( !empty( array ( $curauth->facebook ) ) || 
     !empty ( array ( $curauth->linkedin ) ) || 
     !empty( array( $curauth->twitter ) ) )
{ 
    echo 'echo me if any $curauth info exists'; 
} 
?>

Note: This can be all on fewer lines, I've just put in additional line-breaks to make it all fit to avoid a horizontal scrollbar.


Update:
Reading up on Author Templates made me realise that once you've set the $curauth variable, e.g.

$curauth = (get_query_var('author_name')) ? get_user_by('slug', get_query_var('author_name')) : get_userdata(get_query_var('author'));

you should be able to use this instead:

<?php 
if ( !empty ( $curauth->facebook ) || 
     !empty ( $curauth->linkedin ) || 
     !empty ( $curauth->twitter ) )
{ 
    echo 'echo me if any $curauth info exists'; 
} 
?>
1
  • 1
    Thanks, that works. I already call the $curauth variable. I wasn't formatting the array the right way. But the code can be simplified a little as noted in my update to my question. Commented Dec 24, 2011 at 17:17

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.