Posts categorized “WordPress”.

Four WordPress Plugins

As I gear up to teach my first full undergraduate course, I’m revisiting my WordPress installations and test sites, and playing around with a few things. Since I’m digging around a little anyway, I wanted to get in some info about some of the plugins I’m using. Here’s the first round.

Drain Hole:

Great download management plugin.

Ability to create multiple “drain holes,” which will allow for cleaner management of course files (e.g. have one hole per course taught.)

Presented download links are clean, customizable, and informative. If students don’t want to download a .ppt file that’s over 100MB, they can decide that before starting the download. I use

[drain file 6 url] - [drain file 6 size]

to output

[drain file 1 url] – [drain file 1 size]

Files can be uploaded via FTP into a folder that’s not web-accessible (i.e. one directory above the “/public_html” directory on the server). Drain hole directories can then be manually “scanned” via the Drain Hole administration areas, and any new files are integrated into that drain hole.

Confirm User Registration:

A plugin to restrict access to approved registrants. Turning on the “anyone can register” function from the general settings admin page allows just that. With this plugin, admins can filter the accounts that get approved, i.e. only students currently listed on the roster. This one’s a little older (not much going on, development wise), but seems to be holding up rather well.

Exclude Pages:

This plugin simply removes page listings from certain database tables so that they do not appear in any navigation (or some other) lists. The pages are still accessible as normal, but they are just not listed along with all of the other pages wherever WordPress creates a list of pages.

I use this for pages related to student grades, course polls, etc., and then add specific links to those pages only in posts or pages directly related to that content.

KB Gradebook:

Registered users of the site (students) can see their own grades (and not other students’)on a custom page containing [KB Gradebook]. Updating grades is as easy as uploading a .csv file and telling the plugin where to find the student e-mail information. One neat beta feature of the plugin is that it can use current registered users of the site as students on the .csv gradesheet (as long as user e-mail and student e-mails match up). Make sure line 42 of the plugin’s .php file says define('KBGV_WPUSERS', true );.

And while you’re in the .php file, may as well change the location of the admin panel link from “posts” to “tools.” Do this by changing line 904 to

add_submenu_page('tools.php', __('Gradebook', 'kbgb'), __('KB Gradebook', 'kbgb'), 10, 'kb-gradebook.php', 'kbgv_admin_page');

Themes and Members

Theme design/tweaking is one of the main reasons (other than unlimited control over plugins) that I decided to go with a self-hosted WordPress install over one hosted at WordPress.com Having bumbled my way through designing the course site for BIPN150, I got some hands-on experience in how to find and modify theme css.

After the course finished, though, I discovered WordPress child and parent themes. There are a few really good theme frameworks, like Thematic and Carrington, but I finally settled on Hybrid. The former two were for some reason daunting to me as a beginner to theme frameworks. One primary reason I went with Hybrid is its creator, Justin Tadlock.
His approach to WordPress development is very practical, and the support in the ThemeHybrids forums is quick and excellent. From his original post on why he created Hybrid:

I needed something that I wouldn’t have to hack up to make it work how I wanted.
Believe me, themes I’ve used here on my blog have been massively more complex than anything I’ve ever released into the wild. Recoding a theme from scratch every time I wanted a different look was not an ideal solution.
Once the theme was at a standard that was good enough for my own site, I started thinking about how to make it good enough for your sites.

One of my main goals for all of this is to have a WordPress powered CMS for managing courses. One crucial first step in this was finding a better way to manage users of a WordPress site, and Justin’s members plugin has been fun to dig around in and see what I can extend or modify.