I loved OpenX project. Actually, I loved it when it had old name, phpAdsNew. I even wrote a huge post recommending other to use it.
Unfortunately, OpenX open source project is like dead now. There is no good support, there are security vulnerabilities, installation have problems…
One of common problems (by looking in their forum) is that stats aren’t recorded. This is what happened to me. One day I logged to my OpenX installation and stats page said there wasn’t any impression on that day. I checked my sites and saw that ads are running normally. So I waited to see if it’s something temporary but even after days passed, nothing changed.
Then I noticed there is a new version 2.8.7 available (I was running 2.8.5) so I upgraded my installation. But nothing changed: ads were delivering, I can see old stats but not a new one.
I decided to see if there is some solution on the web and on OpenX forums, but I can see rantings and issues that weren’t applying to me. Then I saw one post of some guy who said that he optimized and repaired his database and after that everything started to work. I did that too. But by looking in my debug.log file, I also noticed that there weren’t plugins in my installation. It appeared that new versions don’t contain plugins in itself, just empty folders. So I copied plugins from old versions.
And then, stats started to record again.
My solution (which is maybe not applicable to everyone):
- check if you actually have plugins (at both place /plugins and /admin/plugins)
- optimize and repair your database; since this requires some time, turn off delivery from you websites
I feel sorry when I see how this once great software is dying. What is worse, there is no any open source alternative to it. The only alternative I see is DoubleClick for Publishers, formerly know as Google Ad Manager, which I’ll consider moving to.
I have tried for some time to make following: having WordPress installed in a root of host (like example.com) and having content below root (like example.com/page, or example.com/custom-post-type/entry), while having blog posts in special directory (like example.com/blog). This is needed when blog is not main type of content on WordPress powered website, but instead is just one part of a site. Example of usage is having a company website where pages are used for usual static content while there is blog or news section where updates are posted.
At first, this seems easy to achieve. Just change permalink structure on Settings → Permalinks page to something that starts with /blog/ (or whatever subfolder we want to use) as some people (and Codex entry) already suggested.
But there is a problem with this approach: your blog posts will be in your chosen subdirectory but blog’s index and paged pages won’t. This means that you wouldn’t see latest posts by going to blog’s subdirectory (example.com/blog), but instead only by going to front page (example.com).
Solution for this is very easy and I couldn’t believe how I didn’t remember it. I found it on WarriorForum, posted by user Dan Sherman. You simply need to create two empty pages and go to Settings → Reading page and choose those two pages as “Front page” and “Posts page”. Then you go to Settings → Permalinks and choose your new permalink structure.
What is important to remember is to give a name to page that should be chosen for “Posts page” with the same name as you want to name your subdirectory. Also note that for front page you need to either create content as you would for any page, or to use special page template.
Below is a video from WordPress.tv on how to create and setup “Front page” and “Posts page”.
With my new plugin, Gravatar Signup Encouragement, I had a problem with translation of string that is used only on activation.
That string contains default message that is saved in database. No matter what I tried, it would always save original string, not translation.
After asking question on wp-hackers mailing list and exchanging several replies with Otto, I found solution for this. In your function that is used in register_activation_hook, you need to again use function load_plugin_textdomain, even if you loaded it already in init. It should be used before any string.
So if you encounter this problem, you know how to solve it.
Don’t forget to try my plugin mentioned here, Gravatar Signup Encouragement.
Those who last days came on this blog, saw page with many ads. That happened because domain expired, but not fully by my mistake. Ten days before expiration, I went to my registrar i tried to renew domain, but they couldn’t bill my card (even I paid before over there with it and same day on some other website). I have mailed for days with their support, but they couldn’t solve problem. And then domain expired. Luckily, by new regulations, there is redemption period of one month during there is possible to renew domain, but is not possible to use it. Meanwhile, I signed up for virtual Visa card and paid with it, since I couldn’t do it on other way.
So from this story you should learn that you shouldn’t wait to renew your domain, you should do it months before it expire.