I use Rob Miller’s excellent Now-Reading plugin to track all the books I’ve read and am reading here at CoffeeBear. After my recent site upgrade I decided to tweak the single book template for my library. I noticed that the latest version of Now-Reading allows you to note who read a given book on multiuser sites. As my wife occassionally posts here I wanted my reads to be marked as mine, but the default output of the function Rob implemented only displays the user’s login name. Seriously Rob, what were you thinking? If you did not want to give end users the option to select how they want their name to print out why wouldn’t you go with display_name?

I looked at the code Rob used and with a little help from the Practical PHP I hacked together my own function based on Rob’s. By default print_reader2 works the exactly the same as print_reader1 but by feeding it an additional parameter, you get your choice of what to use to display as reader’s name:

  • 0: Prints out the user_login aka the username you use to log into WordPress.
  • 1: Prints user_nicename, appears to simply be an all lower case version of the user’s nickname2.
  • 2: Prints display_name, from the “Display name publicly as” field in your WordPress profile.
  • 3: Prints first_name, from the “First name” field in your WordPress profile.
  • 4: Prints nickname, from the “Nickname” field in your WordPress profile.
function print_reader2( $echo=true, $reader_id = 0, $display = 0 ) {
	global $userdata;

	$username='';

	switch($display) {
		case "1": if (!$reader_id) { get_currentuserinfo(); $username = $userdata->user_nicename; } else { $user_info = get_userdata($reader_id); $username = $user_info->user_nicename; }; break;
		case "2": if (!$reader_id) { get_currentuserinfo(); $username = $userdata->display_name; } else { $user_info = get_userdata($reader_id); $username = $user_info->display_name; }; break;
		case "3": if (!$reader_id) { get_currentuserinfo(); $username = $userdata->first_name; } else { $user_info = get_userdata($reader_id); $username = $user_info->first_name; }; break;
		case "4": if (!$reader_id) { get_currentuserinfo(); $username = $userdata->nickname; } else { $user_info = get_userdata($reader_id); $username = $user_info->nickname; }; break;
		default: if (!$reader_id) { get_currentuserinfo(); $username = $userdata->user_login; } else { $user_info = get_userdata($reader_id); $username = $user_info->user_login;};
   }
	if ($echo)
		echo $username;
	return $username;
}

Side note: WordPress 2.5.1 got released today and it includes a security fix, be sure to update your blogs!

1 At least, I think it does. I’m not a programmer and I only know enough PHP to be dangerous to myself.
2 The WordPress Codex does not appear to define what this field is used for or why it exists, so that’s just my guess.

I’ve been working on some stuff behind the scenes here at CoffeeBear.net with the intention of eventually upgrading the site’s backend and developing a new theme for the site. In the process of doing all this behind the scenes works, I’ve been trying out new plugins and wanted a quick way to check my server’s setup without putting a page for just anybody to view (e.g. creating my own phpinfo page). I found this a plugin by Designpraxis which basically adds the output from phpinfo to WordPress’s admin panel. Unfortunately, it buries the page/info under the Options panel. So I hacked it up to move the output under the Dashboard panel. Then I thought, it would be great if it could also list off all the plugins my site uses and what version of those plugins. I already have the pluginsUsedPlugin installed but it didn’t support plain-text output. So I hacked it up to output in plain-text, hacked up Phpinfo to include that plain-text output and then there was much rejoicing.

I thought it only fair to share my hacks, so enjoy or not as you choose. I’m sure there’s a more elegant way to code these changes, but I am not a programmer so if you use these and don’t like how I changed them… Well, you just have to suffer then. :p Feel free to ask questions but keep in mind:

  • I’m not a programmer.
  • These plugins aren’t originally mine. I don’t know much about how they work. I only know enough to hack together my changes.
  • If my hacked versions don’t work for you, try the originals before asking me for help. The people who made the originals should have a better idea of why things work/don’t work.

CoffeeBear’s Hacked Plugins