For many moons I’ve been attempting to get the server functionlity of the OpenID plugin working with my wordpress install and been stumped on the following two errors:
First, any hit on the OpenID /openid/server url (I am using non-default permalinks) generated the following :
Fatal error: Call to undefined function add_options_page() in /path/to/wp-content/plugins/wp-contact-form/wp-contactform.php on line 200
This was pretty obviously a conflict with WP-Contactform. Disabling this plugin made the above error go away, so I’ll be looking for a replacement for it soon.
Once the contactform error was worked around by disabling the plugin, the following appeared:
Fatal error: Call to a member function needsSigning() on a non-object in /path/to/wp-content/plugins/openid/Auth/OpenID/Server.php on line 1495
This would happen when I tried to specify my URL (whether main blog or wordpress author url) as an openid – it would seem to be working, go through the logon process then generate the error and the authentication process would abort.
After much googling (not much out there but this was helpful, sort of) and a good period of waiting and trying new versions of the OpenID plugin as they were released, the solution / workaround turned out to be extremely simple. It was a plugin conflict (doh) and a process of elimination identified the culprit and main show stopper: the cryptographp plugin.
No idea why but once it was disabled things worked fine. I was using this plugin to generate protective captchas for my comment forms. I replaced it with Simple CAPTCHA. (Its worth noting that in the 15 minutes or so I had no CAPTCHA active, I had already received a bot comment spam – and my site isn’t heavily trafficked by any means). I might choose another solution at some point from the plethora available, but for the time being, Simple Captcha gets the job done fine.
So thats about it. In a nutshell, some seemingly unrelated plugins were conflicting, disabling them and replacing with alternatives fixed it.
Now I can use glenscott.net as an OpenID, and my visitors have a nice simple OpenID login option on comments pages =)