Each term at Carleton seems to go by quicker than the last, and fall term this year proved to be no different. This fall marked my first term working as the backend web development intern for digital scholarship, and I certainly learned a lot.
I began the term familiarizing myself with plugin development for content management systems. To give a brief overview, content management systems are applications that allow users to create, edit, and publish web content (ie. WordPress), while plugins are small software components that help to extend a web page or program’s functionality. Since I had no prior experience with plugin development, the first couple weeks of the term consisted of me taking online plugin development courses, where I gained exposure to both PHP (a computer programming language often used for plugin development) along with how plugin development works in WordPress. After completing the courses, I spent the rest of the term extending functionality for simple plugins (created by last year’s backend intern) for both WordPress and Omeka, which are the two content management systems that are most heavily used for our digital scholarship work.
While I thought the learning curve for plugin development was relatively steep, I found plugin development to be a fun and rewarding process throughout the course of the term. The structure of plugin development was brand new to me; instead of developing functionality from scratch, much of the functionality required for plugin development is already built into the systems, and it is up to the developer to figure out which predefined functions to use and edit for a specific plugin. Much of the learning curve I experienced dealt with figuring out how all of these pieces work together, and how to utilize built in code to my advantage.
I began working on a simple WordPress plugin developed by last year’s intern, and working on a plugin hands-on was really helpful to my understanding. The plugin originally displayed a couple of basic statistics (number of posts, number of post pages) on the Admin Dashboard located on the backend of a WordPress site. I extended the functionality of the plugin to also display the total number of comments on the site, along with the date of the most recent post. In addition, I added options to the settings page to let the user choose between displaying the plugin information in its default location, in a separate widget on the Admin Dashboard, or on the main page on the frontend of the site. After updating the WordPress plugin, I began working on a similar plugin in Omeka, and extended its functionality in a similar way.
At a high level, plugin development in WordPress is quite similar to Omeka. Plugin functionality relies on hooks and filters: hooks help to execute code or produce output in a particular place, while filters are used to modify data. Plugin development in WordPress and Omeka have many more similarities than differences, although there are some small syntactical differences with how plugins should be formatted and function naming conventions. Additionally, Omeka uses an MVC framework (model-view-controller), whereas WordPress does not.
While there are many similarities and a few small differences between plugin development in WordPress and Omeka, the one big difference is the clarity of documentation that exists for developers in WordPress and Omeka. As one of the largest presences on the web, WordPress has extensive documentation, with a detailed developer’s page and thorough tutorials that walk through getting acquainted with plugin development and taking advantage of built-in WordPress functions. On the other hand, Omeka lacks effective documentation, with sparse information about functions, hooks, and filters. Additionally, there is a vast amount of information about WordPress development elsewhere on the web — in forums, tech websites, etc. — due to the large base of developers that work in WordPress. I was able to resolve many questions that I had through forums such as Stack Overflow; unfortunately, similar information does not really exist for Omeka.
All in all, I really enjoyed plugin development for both WordPress and Omeka, and I’m looking forward to seeing what next term brings!