Kevin: your plugin is making a faulty assumption, leading to bios only being shown to people logged into the WP install. In the KLVisualBiographyEditor::display_filters()
, callback, you’re checking for current_user_can(‘contributor’) to use the_content
filter on the bio. Problem is, this is not checking if the user whose bio is being displayed is a contributor, but rather, if the person who is currently viewing the site is an editor.
If you are wanting to make this check, you need to pass the second $user_id parameter from the get_the_author_description
filter and check the capability on that user. But I don’t think you even need to bother – what does it matter on the display side?
Finally, you may want to reconsider merely applying the the_content
filters. Many plugins add additional content (such as social media buttons) to that filter, which you’ll wind up with in this case. It would be better to simply see what the relevant functions running on the_content
are, and just running them directly. In this case, wptexturize
, convert_chars
, and wpautop
should do the trick.