One of my sites had problems displaying password protected content this morning. The site worked fine, but after supplying the password on the protected content the content area was blank. It turns out JetPack plus some missing PHP modules on my Linux server were the culprit.
How did I find the issue?
WordPress debugging. This is usually my first stop when trying to isolate a WordPress problem. Go to the root install of your WordPress site and edit the wp-config.php file. Look for the line:
While you are in there turn this on as well. This will allow you to quickly turn this feature on-and-off and then investigate the debug.log file in the wp-content directory. You don’t want to leave debug mode on with a site that visitors are accessing.
When I make these edits I prefer to copy both lines and set one of them to false while leaving the other true, then comment out the pair of lines I am not using. That makes it easy for me to go in and turn debugging on/off by swapping the leading comment (#) marker.
Now go to the offending page on your site. You should have the errors logging to the ./wp-content/debug.log file which will give you some hints.
In order to properly render protected content JetPack uses the XML Dom Document processor. Make sure you have installed php-xml on your server.
The other package JetPack uses heavily is multibyte string support. Make sure you have php-mbstring installed.
On Red Hat flavored Linux variants you can get everything in order by using these commands:
yum install php-xml yum install php-mbstring service httpd restart
Make sure you execute the restart on the web server so the PHP modules are loaded properly.
This may not fix the issue on your server, but the debugging and module searches may help some of you.