Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
  • Register
Welcome to the Q&A for Question2Answer.

If you have questions about the platform, click here to ask and please use English.

If you just want to try Q2A, please use the demo, which also grants admin access.

Apr 29: Q2A 1.5.2

Changing display of name based on Wordpress databse

0 votes
I've got my Q2A install hooked up to WP, such that when a user asks a question the username of that person appears under the question. So to say, if the user has the following credentials under WP:

Username: j.doe

First Name: John

Last Name: Doe

It was say that "answered 5 days ago by j.doe"

The way I see it, there should be something somewhere that's pulling a variable from the WP database to display j.doe. With that in mind, would it be possible to display "John Doe" instead? Where should I look?
Q2A version: 1.4.3
asked Dec 2, 2011 in Q2A Core by kenlimmj

2 Answers

+1 vote

If you open up qa-theme-base.php and navigate to the post_meta_who function. If you then replace the if block starting if (isset($post['who']['data'])) with the following code, it should use the wordpress display name for everything except edits, as edits appear to get the username a different way, which I am currently searching for. If anyone knows where this data comes from comment and I'll update the answer and look into turning this into a plugin

 

   if (isset($post['who']['data']))
                                  if (isset($post['raw']['ouserid']))
                                        {
                                              $user_info = get_userdata($post['raw']['ouserid']);
                                        }
                                        else
                                        {
                                            $user_info = get_userdata($post['raw']['userid']);
                                        }
                                        $display_name = $user_info->display_name;
                                        $user_login = $user_info->user_login;
                                        $this->output('<SPAN CLASS="'.$class.'-who-data"><a href=/user/'.$user_login.'>'.$display_name.'</a></SPAN>');

                                if (isset($post['who']['title']))
                                        $this->output('<SPAN CLASS="'.$class.'-who-title">'.$post['who']['title'].'</SPAN>');

 

Edit:

 

I have now created a plugin to provide user display names for questions, answers comments and edits, available from here http://wiki.question2answer.org/doku.php/plugins/wordpressname

Next update will replace usernames on profile pages with display names

 

answered Dec 18, 2011 by Trobee
edited Dec 20, 2011 by Trobee
using this code, if you check out the buddypress plugin layer file, you can see several places where it can be used to substitute the username.
0 votes

In qa-include/qa-external-users-wp.php, I changed all instances of “user_nicename” to “display_name”.  That seems to be working for me so far (including edits and user profile pages).

answered Dec 21, 2011 by prubin