WordPress – Thoughts

James Young · May 1, 2013

Well, now I’ve got WordPress set up and running, a few thoughts and comments about it are in order.  So far, it’s pretty good.  Cleaner than Blogger, but it does require more maintenance to run.

On CentOS, installation was very easy.  You can follow this basic guide here (although I used the yum package from EPEL instead of using the tarball).  After installation, go into wp-config.php and edit it.  Add this somewhere;

/** Define method used to update filesystem - direct is forced */
define('FS_METHOD', 'direct');

WordPress checks whether the wp-content directory is writable before determining whether it will be able to upload plugins.  With the yum package,  wp-content is not writable by apache, but the  wp-content/plugins directory is.  Technically plugin installation does not require write access to  wp-content but does require it to wp-content/plugins, so I guess WordPress has a bug.  Anyway, the above fragment will force WordPress to use the direct method, which will work.

Blogger Importing

After setup, the first thing I did was to install the Blogger Importer plugin, and go and import all my old Blogger posts.  This worked pretty well, brought in all comments and posts, and linked them up right.  However, it did break some formatting in the posts - particularly with headings and blockquoted code segments.

I also had to spend a fair bit of time retagging and recategorizing all my posts to tidy them up.  Annoyingly you can’t mass edit a group of posts and remove a category easily, but you can mass edit and add categories and tags.  You can then strip categories off posts with MySQL queries if you’re brave.

I also had to go through my posts and edit several of them to clean up the layout, insert preformatted blocks and headings and such.

Could have been a lot worse.

Essential Plugins

The collection of plugins I have installed by default are;

  • Limit Login Attempts - Helps prevent brute force attacks against your WP logins.  Easy to set up, no real reason not to have it. 
  • Jetpack by WordPress.com - Adds a vast raft of features to your WP install.  You’ll need to sign up for a WordPress.com account to get all the features, but it’s worth it. 
  • Google XML Sitemaps - Automatically notifies Google when your blog changes so that search works properly
  • Easy Table - Allows really easy table generation in blog posts.
  • Akismet - Spam control for comments.

All of the above are very easy to set up, and Jetpack in particular is a must have.

Cool stuff

With those plugins installed, you can do really cool stuff when posting that wasn’t so easy with Blogger.  Some of those are…

Maths Formulas with LaTeX

It’s possible to use a special latex tag in order to make text get rendered using Latex, the defacto standard for mathematical typesetting.

$ latex \displaystyle \sin(x) = \displaystyle\sum_{n=0}^\infty \frac{(-1)^n}{(2n+1)!}\ x^{2n+1} = x - \frac{x^3}{3!} + \frac{x^5}{5!}- \frac{x^7}{7!}\ ... &s=2$

When used somewhere will render as

\displaystyle \sin(x) = \displaystyle\sum_{n=0}^\infty \frac{(-1)^n}{(2n+1)!}\ x^{2n+1} = x - \frac{x^3}{3!} + \frac{x^5}{5!}- \frac{x^7}{7!}\ ...

That’s pretty awesome.  Oh yeah, you don’t actually have a space between the $ and the latex word above, I just had to put it there to stop it being interpreted.

Easy Tables

With the Easy Table plugin, you can render a table very easily like this;

[ table class="table table-striped"]
Number,Letter
1,A
2,B
3,C
4,D
5,E
6,F
[/table]

And that will then render like this;

Number Letter
1 A
2 B
3 C
4 D
5 E
6 F

Awesome.  Drop the space between [ and table, of course if you want to give it a go yourself.

Preformatted text blocks

There are a few above.  They Just Work(tm) in WordPress, but in Blogger your experience can be random.

There’s various other plugins that can be installed do do nice stuff like syntax highlighting for code and so-on.  I’ll check those out later, but the plugins I’ve listed above do most things quite nicely.

All in all, I’m pretty happy with it so far.

Twitter, Facebook