Recently, on Greener Leith, I thought I’d try to add a discussion forum to the site. I’m not going to look at “Why” here – but more the “How” I found setting up BBPress.
BBPress has recently undergone a pretty big upgrade, and it was this that made me think that perhaps it was worth taking a look at. Functionally, all the basic forum stuff works well, and after messing about with the CSS a bit, I was pretty happy with the way it looked and operated as a forum.
But if you’re not much of a coder, you might want to think twice about setting it up on Multisite – as it took me a fair bit of thinking – and trial and error – to figure out the right combination of plugins and tweaks to get the registration process running more smoothly.
The key problem is that WordPress multisite handles user accounts on a network level. This can make the registration and login process a bit confusing for people who may not be familiar with WordPress and only want access to the forum part of the site.
BBPress comes with a load of shortcodes for various aspects of the sign-up process. So, when I installed it, I set-up a page for each shortcode, so that login, registration and the lost password forms all had unique urls.
So far so good. But when it came to testing the registration process, it became clear that the BBPress registration form was simply redirecting to the standard user multisite registration form – so people had to enter their data twice.
Then, when they got the confirmation email, they were sent to the standard multisite confirmation page, on the main site.
This included some confusing references to setting up a new site – and then the login link took people direct to their profile page in the back-end of WordPress.
Pretty much every step of that process seemed to be confusing for new users. So, I tried to fix it. After a bit of messing around, here’s the “virtually no coding” solution I found.
The first step was to sort out that weird two-step registration form. It turned out the best way to fix that was to install the Join My Multisite plugin. This allows you to control registrations on a per-site basis, and it provides another short code for registrations for each site.
So, on the registration page I’d made, I ditched the BBPress registration short code and added the [join-my-multisite] short code instead. This meant that the standard multisite registration form appeared in the right context – that of the forum site – and that the confirmation message that followed it did too.
The next part of the problem was what happened when people clicked their confirmation link in their email. This did take people to the main-site – but found it was pretty easy to edit the text and the login link that appears in the message by editing wp-activiation.php
I was helped by the fact that the only place on the multi-site network that actively encourages public registrations is the forum page, so I could get away with simply altering the default text to remove references to “new sites” and by editing the login link so that people were directed to login at the forum login url with BBPress login shortcode in it.
This change meant that new users never see the “standard” WordPress login screen, which could have been confusing to people unfamiliar with WordPress.
However, when people logged in, the default behaviour was still to send them to their profile page in the Forum backend. To get rid of this behaviour, I used the very simple Redirect to homepage plugin.
And lastly, to simplify the back-end for forum users, and add a bunch of other useful stuff I added the GD BBPress Tools plugin too.
Sorting registration out was relatively easy for me in this case – because I use virtually the same theme across all the different sites that make up the multi-site network.
And as the forum was the only site where public registration was needed, then I could get away with hacking the activation.php file pretty blunty – so that it always redirected people to the forum login.
This wouldn’t work if you had a network with lot’s of totally different themes or wanted to accept public registrations from more than one site.
Nevertheless, I thought I’d post this up here, in the hope that it will at least save some folk the bother of going through the same boring journey I did!