On Being Hacked [en]

[fr] Hackée, et voilà, moi qui savais justement pas quoi faire de mon beau dimanche après-midi ensoleillé...

I’m currently battling with a hacked WordPress installation. You won’t see anything if you view source, but Google unfortunately sees a whole lot of spam right at the top of each of my pages.

Result of being hacked on CTTS

Here’s some information in the hope somebody may have a bright idea to help me root out the hack.

  • I’m running 3.0.3 and would like to find the source of the problem before upgrading to 3.04 (bad idea?)
  • I’ve tried disabling all plugins, and the problem is still there when I do that.
  • I’m using the vanilla default Twenty-Ten theme
  • I’ve looked in the theme header (header.php) for anything obvious, and also in wp-content, wp-plugins, etc. for anything that looked out of place to my eyes
  • I’ve run greps for base64 (anything here look suspicious?), spammy keywords, and other things I could think of
  • It does not seem to be this pharma hack (have failed at finding any signs of it following the instructions there — wp_option keys, backdoor files…)
  • I have searched my database for spammy keywords (also backwards) and haven’t found any aside in spam comments caught in Akismet

I will update this post as I find out more. Thanks for your suggestions.

Update: at least a partial solution… running find . -iname *.php -print0 |xargs -0 grep base64 allowed us to identify a problem in l10n.php, which was promptly replaced by a new version (evil version available on request). One of my pages as viewed by Googlebot now looks like this. So, the site is cleaner, but are there any backdoors left?

Google Webmaster Central is definitely a place to visit regularly — I would have spotted this way sooner if I had, rather than wondering what was wrong with my robots.txt file when I stopped being able to “direct Google” my posts. View more scary screenshots.

Facebook Page Like Buttons: Quick and Dirty [en]

[fr] Comment ajouter à votre sidebar WordPress un bouton "J'aime" simple pour vos pages Facebook.

Sorting out my mess of Facebook pages and groups (part 2 coming soon!), I’ve spent way too much time struggling with the Facebook Like Box creator and a couple of WordPress plugins (Facebook Social Plugins and Facebook Like Box Widget). I just didn’t manage to get what I want, which is a simple, minimal list of my Facebook pages and a Like button next to them.

Here’s what I wanted (it’s in the CTTS footer now, so you can also scroll down and see it live… and like my pages!)

Quick and Dirty Facebook Page Like Buttons

I didn’t want a Like Box full of stuff. Just the page name, avatar, and the like button.

Here’s how I finally did it (it’s dirty, but it works — just stick the code in a text widget if you have a WordPress blog):

<iframe src="http://www.facebook.com/plugins/likebox.php?id=7812744463" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:220px;height:60px;" allowTransparency="true"></iframe>

Just replace the number after id= by your page’s ID (you can find it easily by going to your page, it’s the number following your page name in the URL.

If your page name is long, you might want to increase the height of your iframe to 80px or 100px (trial and error, you’ll find the right height).

There you go!

Oh, and I added like buttons to my posts, too, with the Facebook Like Button plugin. Dunno if it’s the best one out there or not, but it seems to work and I didn’t have to struggle too much setting it up.

WordPress.com Still Messes Up Tags and Categories [en]

It pains me to say it, but much as I love them, they still don’t quite get the difference between tags and categories. Yes, WordPress.com now makes a difference between tags and categories (and have been doing so for quite some time), but they are still missing part of the equation.

  • Categories are big pre-defined drawers to sort your posts in. They’re local.
  • Tags are labels you stick on posts after you have written them. There are tons of them and they’re messy and they’re global.

Logically, links on tags should point to the general WordPress.com tagspace (they do) — and links on categories should point to the local category pages of that particular blog. Only they don’t always.

The “Categories” widget works the way it should. But the rest is a mess. Examples.

  • Look at the Coworking Léman site, which uses the Mistylook theme that I personally love. This article‘s category links to the general WordPress.com tagspace (wrong), whereas this one‘s category links to the local category page (right).
  • The La Muse site, which uses Ocean Mist, makes article categories link to the general tagspace (wrong) but at the bottom of the page, lists categories with the correct links to category pages.

I could find more.

In general, the problem seems to be that article category links are made to link to the tagspace just as tags do. I mean, what’s the point of having a difference between tags and categories (an important one, if you ask me) if you make them behave the same way in the templates? This is a major problem for me. I hope Automattic are listening and will do something about it. (I contacted support but was told, basically, that it was a feature.)

So, please, Automattic: make the links on category names link to local category pages, and the links on tag names take us to the global tagspace.

Thanks!

Traduction suisse romande de WordPress.com [fr]

Il y a quelque temps déjà, on m’a très gentiment donné les clés (merci, !) de la traduction suisse romande de WordPress.com. Chacun peut contribuer à la traduction grâce au système GlotPress — il suffit d’être connecté à votre compte WordPress.com.

Pourquoi une version romande? Comme vous le savez, le français d’ici et le français d’outre-Atlantique (et même d’outre-Léman) ne sont pas tout à fait les mêmes. Plutôt que de lutter contre “blogues”, “courriels” et autres “plans du domaine” qui apparaissent quand on mélange des francophones trop divers, je vous propose donc de mettre sur pied une petite coalition romande pour qu’on ait à disposition une jolie traduction helvético-compatible.

Si ça se passe bien, il pourrait même être question de procéder de même pour WordPress.org… Donc lancez-vous, même si vous êtes plutôt .org que .com! (On peut — enfin je peux — exporter/importer des traductions…)

Pour vous y mettre:

– allez hop, une petite traduction ou deux le matin avant de démarrer

– partez à la chasse au courriel ou au blogue grâce au filtre

– dans votre blog WordPress.com, allez sous Réglages > Général et choisissez comme langue “Français de Suisse” (fr-ch)

– quand vous remarquez une erreur de traduction, allez vite proposer une meilleure traduction en la retrouvant grâce au filtre

Qui s’y lance avec moi?

Plans for Basic Bilingual [en]

[fr] Projets de développement pour le plugin WordPress Basic Bilingual, qui rend ce blog bilingue.

Here are the next improvements I want to make to the WordPress plugin Basic Bilingual. Considering my coding skills, they will happen slowly, so feel free to lend a hand if you think you can.

  1. Move the language definition to the admin screen. There’s already a screen and an option there, so it’s a simple case of copying and modifying code around to create options for language 1 and language 2, and create a simple function to retrieve the values at the beginning of the plugin.
  2. Allow WordPress search to access the other-excerpt field. The Keyword Search in Plugin Table example in Codex is close enough to what I’d like, only it would need to search in the postmeta table instead of a custom plugin table.
  3. Here’s the big one. Append a language code to any WordPress URL (except permalinks) to filter out posts from the other language. Ideally, would display posts in the language and also the other-excerpts of posts in the other language, with different formatting (smaller title font to distinguish them from full posts written in the desired language). Am reading up on wp-rewrite, permalinks for custom archives, WordPress queries and custom queries. I feel I’m onto something, but I also feel just a little bit out of my depth.