I’m currently using gravity forms and struggling with the accessibility of it. It sounds like there are no plans to make it accessible, but I know a lot of people use this plugin, so let’s make the best of it. Continue reading
A lot of people have setup WordPress, and obviously each organization needs to set it up a specific way to fit their needs. Nevertheless, learning how different libraries set up their CMS is something I have found useful in the past, so I thought it might be helpful for someone else if I shared the way I decided to set up WordPress at my work.
As we have more than one site, it was an obvious choice to use the MultiSite flavour of WordPress. We set it up to use the directory structure option since we would be under a subdomain already, we decided against having sub-subdomains.
We installed it on its own virtual server through our central IT. We discovered in the process, however, that by default, a lot of modules are disabled by IT, so we had to request a number of them to be installed. For the core, the only one was:
- GD Support – required for creating the different image sizes (i.e. thumbnail, medium, large)
Various plugins uses PHP modules that are part of the standard PHP install, so may not point out the need for enabling them. For plugin requirements, I’ll note them in the plugins section.
Setting Up The Sites
Creating the sites were simply a click of a button of course, but a lot of settings had to be changed. While most of the defaults were fine, I did change a number of settings. In particular, one of the settings was only accessible (through the Dashboard) by manually entering into the address bar, options.php
image_default_link_type = ‘none’
For most of our sites, there is no advantage to linking to the attachment page or a full size version of the image. Additionally, the images that are uploaded are usually close to the size that is being used on the page. The one exception I made was for the Archives & Special Collections site.
We also do not allow users to set up their own sites, so staff have to contact a network administrator.
Making The Themes
The lengthiest part of the process was making the custom themes. I won’t actually go into details here, but will later post details on the creation of the library’s theme. I have already talked about the options I implemented in the post about Branding the Library Website.
I will note that we avoided making a ‘mobile’ theme by making the themes responsive. They’re not the prettiest, but at least they work.
I did have to make a standard template to use for our non-WordPress sites, including the ILS, Special Collections, and ColdFusion stuff.
Roles & Capabilities
- Administrators: Due to the Carousel plugin, some staff were made administrators, but with restrictions at the user (rather than role) level to have similar permissions as editors.
- Editors: have unfiltered html (using the Unfiltered MU plugin)
- Authors: can also edit/publish pages and delete own pages, moderate comments to own posts
- Contributors: can edit/publish pages (instead of posts) and delete own pages, and add/edit/delete own media
Migrating the Existing Sites
We migrated from static HTML sites and single install WordPress blogs (I don’t know why this wasn’t a MultiSite to begin with).
For WordPress sites, I used the standard export/import that you have to install, but is integrated into the core. The one problem is that in MS, if you import images, it will copy the images over with the metadata, but will not update the links in the posts themselves (see ticket #16404). To solve this problem, I used the Search and Replace plugin to change all the old links to the new ones in one go.
We settled on using the HTML Import 2 plugin. It worked well, especially since it supports Dreamweaver templates, which were used with most of our pages. It didn’t catch all the links, so we had to update some of them manually, but using the Search & Replace plugin helped a great deal.
The other thing that took a bit of time was to replace thumbnail images with the WP version and delete the original thumbnails. My coworker also uploaded all the images with the thumbnail crop option on, so I used the AJAX Thumbnail Rebuild plugin to force WordPress to recreate all the thumbnails.
Updating the Site
As with any move, it’s a good opportunity to update the site. Unfortunately, we had too tight a timeline to update the content and organization of the site (except for some minor changes). As a result, the site looks more or less the same, but I updated and coordinated the updating of a lot of the code.
I consolidated the CSS files, updated the template to use HTML5 and meet WCAG2.0, and most time intensive of all, got rid of all layout tables (with some other staff helping).
Here is the list of the plugins I ended up with including those to help with migration:
- Advanced Access Manager
- requires php-soap
- bought the premium version to lock down more pages
- we also had to copy the contents of the .htaccess file to our server one to make it work properly
- AJAX Thumbnail Rebuild
- Akismet – need API key
- Breadcrumb NavXT – used in the theme
- Broken Link Checker
- CAS Authentication – with minor customization
- Custom CSS for Posts and Pages – downside: if a user without access to it updates a page using a CSS file through this plugin, it resets the page to not use any CSS file
- Custom Dashboard Widget
- Custom Menu Shortcode
- Google XML Sitemaps
- HTML Import 2 – requires php-xml
- Jetpack – recommend mbstring (PHP) for Sharing; also requires wp.com account
- List Pages Shortcode
- Network Username Restrictions Override – required for CAS Authentication in our case
- Search & Replace – no undo button!
- Section Widget – great little sidebar widget to control which pages/posts to display the widget
- Shortcodes in Sidebar – requested, but not yet implemented in the core
- Site Specific CSS
- Slickr Flickr
- Social – to optionally push posts to Twitter and Facebook
- Subpages Navigation – automatically list subpages in accordion style menu; made a few CSS overrides to make it look the way I wanted to
- Unfiltered MU – allow administrators and editors unfiltered HTML
- WordPress Importer
- WP-reCaptcha – need API key
For reasons why I may have chosen some of these plugins, take a look at my other posts on WordPress plugins.
Oh The Time
So, the most time intensive part really is sifting through WordPress plugins and updating content.
After 8 months, I have finally finished with WordPress development. I definitely learnt a lot, especially in terms of how the back end works and some more PHP.
The most important one:
know more PHP than I did.
Admittedly, I knew very little. While I have some experience programming, I only took a 2 day course in PHP. Not having to look up every little thing would have saved me invaluable time.
The other big one was definitely:
know more WordPress.
The documentation is obviously written for programmers (in most cases, those familiar with WordPress). So once again, I spent a lot of time looking things up. In this case, it was even more difficult because I usually had to rely on a couple of different tutorials and piece things together, making things work through trial and error.
Of course, I didn’t have much choice. And if there is one really good way to learn something is to be thrown into it, and make it happen.
WordPress could really use some improvements though. One area is definitely in the plugins area. There is little to no cooperation between plugin authors, so there may be anywhere from zero to fifty plugins that do similar things, but all work differently and are of varying quality.
One of the reasons I’ve been posting a lot of plugins review is not only for my own records, but in the hopes that it’ll save other people time from looking through the mass amount of plugins. Unfortunately, because plugins come and go like the wind, plugin reviews become out of date very quickly.
The one other thing I wish WordPress would improve is their search. While the site search uses Google, the plugin search is pretty bad and so is the internal built-in WordPress search. For the plugin search, you cannot refine your search in any way, and the sorting doesn’t seem to work properly.
The built-in WordPress site search (and dashboard pages/posts search) is also pretty bad. It’s organized by date and there is a plugin that allows you to sort by title, but it does full text searching and does no relevance ranking whatsoever. If it even did the minimum of “do these words match words in the title, if yes, put those higher” then that alone would be a huge improvement.
While I think WordPress is a great platform (and it’s open source!), there is definitely room for improvement and may not be the right platform for everyone. In comparison, for example, I get the impression that Drupal has a more cooperative and supportive community with better plugin support and development. On the other hand, I find WordPress easier to teach users.
If I had to do it again, I would definitely have taken the time to learn more about the overall WordPress framework and how different parts fit into the puzzle before diving into making the theme.
So, I recently discovered the WordPress Jetpack plugin set, which does a lot of the things I had previous looked for WordPress plugins to do, including custom css, share buttons, and extra widgets you’ll find on the .com version. The only thing I really wanted that was missing, was the “Publicize” feature to post to social media, such as Twitter.
The one requirement I had was that one plugin should be able to post to multiple social networks instead of having separate ones for each social network. This mostly has to do with making it easier to use and maintain. While we only need Facebook and Twitter right now, we may need others in the future, especially something like G+, so I preferred to already have something installed instead of having to find yet another plugin later.
- Network Publisher: This plugin probably supports the most social media sites and even includes stats. I didn’t actually really test this one because it required signing up for an API key. From the plugin page, it seems to at least work though.
- SocialPublish: This one also required creating an account, but I still don’t understand why this is necessary.
- NextScripts Social Network Auto Poster & WP-AutoSharePost: These required setting up apps on each of the sites, which is fine but not what I was looking for.
- Social by MailChimp: This only does Twitter and Facebook, which was my minimum requirement, but it works. Not the nicest interface ever, but I like that you can edit the messages individually before they’re posted. I disabled the comment display, so I’m not sure how well that works, but it’s not something we wanted.
So in the end, Social was the only that did what I wanted easily (i.e. without all the dev apps stuff) and without the requirement of creating an account elsewhere first. Still need to properly test it on a multisite setup, but it’s the closest thing I can find to WordPress’ Publicize.
UPDATE: WordPress JetPack now includes Publicize! Yay~
UPDATE: Please consider not using a carousel at all: Death to the Website Carousel
I previously posted on this same topic not all that long ago, but that slider broke when we updated to the most recent WordPress (3.4) and since new plugins come out all the time, I thought I’d just find a new one. Continue reading
Sadly, this was also harder than I expected. Honestly, in this case, the only requirement I had was that it worked.
Custom CSS Plugin
I tested a lot of plugins (pretty much every one I could find), many of which didn’t work and were simply incompatible with the newest version of WordPress. Here are some that worked:
- My Custom CSS – I liked that it colour codes and has line numbers, but it broke when I got over 700? lines. New classes that I added would be empty. I’m also not a fan of the fact that it just adds it at the top of the page instead of as an external file.
- Custom CSS Manager – Pretty much exactly like My Custom CSS, but I haven’t broken it. Still unhappy that it doesn’t load an external file instead though.
- Your Custom CSS – Simple, but seems to work just fine, even puts your code into an external file, which I like. Didn’t test it to 500+ lines though like I did with the previous ones.
- Best Custom CSS – Works fine, can edit CSS files through built-in WP editor, only doing it that way isn’t very intuitive. It also presets CSS files instead of allowing you to set your own unfortunately.
- Site Specific CSS – Turns out, most CSS plugins only work in a single site since they write to an external file and the plugin always calls the same external file. Since we’re running a Multi-Site install, I ended up with the site specific CSS plugin. It’s simple (all it does is load a CSS file you link to), but it works! Since it’s just a link, you have to edit the files externally or put it into your theme root folder (or plugin folder) to edit it in the built-in editor.
I rejected a couple of CSS plugins that seem to be no longer in development (such as WordPress.com Custom CSS) even if they (mostly) work and I used a combination of how recent there has been an update and whether developers responded to forums posts as a criteria.
Social Media (Twitter, Facebook) Sharing Plugins
On the upside, it was quite easy to find a social media sharing plugin that worked. I did have a couple of requirements for this:
- Facebook and Twitter required
- Share buttons (not sidebar widgets) at the bottom of each post (but not pages)
- Have to be able to turn off the display of shares counters
I didn’t test a lot of them since I found a couple that work, and I was happy with one in particular. Here are the results:
- Facebook, Twitter, Google Plus One Share Buttons – Works, but does not have as many options the other plugins. I also didn’t like the counters showing above instead of next to the buttons, which would be more compact.
- Twitter, Facebook, Google Plus One Social Share – This one works great and has a lot of options including a floating box of the share buttons. The problem I had with this one is that you have more than one row of buttons, it goes beyond the div because of the display setting. I reported it, but didn’t feel like hacking it, so I went with the last one.
- Really Simple Facebook Twitter Share Buttons – This one works great, plus it lets you reorder buttons, and set the width spacing. While the more-than-one-row behaviour isn’t ideal, it works. It also has a via username for twitter. It even comes with a shortcode and selective exclude method.
I’m open to suggestions on better plugins of either, especially CSS ones (for single and multi-site). Next might be form management, but if I can’t find a good free one, I might simply suggest paying for GravityForms (since it’s a one time payment).
UPDATE: Of course, then I finally find out about Jetpack almost all of which is free, including Custom CSS and Sharing. The only downside is that you need a wordpress.com account, and I am not connecting my personal account to work sites.
UPDATE: I posted a newer analysis in June 2012.
A lot harder than I thought, I can tell you that.
Requirements & Options
I did have a few requirements:
- work in a sidebar
- have manual image selection (i.e. not only through featured image on posts)
- be able to set an external link for each image
- some sort of navigation i.e. arrows or buttons
- works with other necessary plugins for our site
- 2D, not a fancy 3D one (though in the future a 3D one might be nice for special collections & archives)
Preferred options include:
- buttons or numbers to skip directly to a specific image
- left/right arrow navigation on hover
- caption text at the bottom of image
- variety of choices for animation
- shortcode to easily add into widget
I tested a lot of plugins (at least a dozen), many of which didn’t work. My guess is that many are dependent on its own version of jQuery and other js files that conflicted with the built-in WordPress one or incompatible with the newest WordPress in some other way.
- JJ NextGen JQuery Slider looked promising, but because NextGen messes with user permissions, it was conflicting with the user management plugin I had installed. I’m wondering now if I disable that part of the plugin whether it will work.
- DOP Slider works but isn’t ideal since there’s no captioning and the arrows weren’t showing up for me.
- WP jQuery Text and Image Slider works but is also not ideal since it has no captioning and would need styling done so it doesn’t put it into a frame.
- Nivo Slider for WordPress worked great. It would need a shortcode added (but that’s easy enough) and the buttons aren’t showing, which is obviously a bug, but we could probably fix it if we wanted them.
Many of the plugins are based on the jQuery Nivo Slider, which is free. Why not just use that? Well, we want our users to be able to add images themselves, and not rely on our team. The Nivo Slider developers offer a WordPress version, but it’s paid. It’s a fairly small amount though so I might recommend purchasing it instead of having to customize existing plugins, especially if it’s a one-time payment.