Just too useful!
Handling multilanguage content is one of the most challenging tasks for a WordPress plugin – I will share my advice on how to turn WordPress into a simple multilanguage CMS, with decent SEO, in minutes. I’ve been experimenting with different plugins and my own SEO add-on, and found a viable solution for most tasks. Continue reading
Every web developer hates Internet Explorer 6, one of the biggest loads of crap in browser history.
I’ve dedicated some minutes to figure out how many users are still using it waching 10 italian and english language websites, 100-3000 visitors a day, mixed nieches. Tool: Google Analytics. Continue reading
Sometimes life is hard and you are forced to find a solution for a specific problem. The Internet gives us the opportunity to share some of these solutions for other people. So…during a dj gig I got my almost-dead iPhone stolen. Not a big issue as the battery was almost dead and it was an old model. Continue reading
No more plugins necessary! Pasting a full Youtube (and more…) URL will automatically embed the video. Great!
I think this is agreat addition to WP. Many people are interested in building video blogs and this small change will make their start much more flawless. I see WP getting better everyday!
The Magic Mouse… Ok, this is not about WordPress plugins but might still change a lot our digital lifes – a multitouch mouse! It looks like finally Apple did a big step beyond the Mighty mouse, which proved to be unreliable in the long run (the scrolling ball dies really often).
I will review it as soon as I receive it from the Apple Store! I’ve never been a fan of the apple mice, except the first ADB mouse which was a masterpiece IMHO…the small round one of the first iMac era was too small for my hands, and the Mighty mouse did never fully convince me. We’ll see soon….meanwhile, somebody else already tested it…
Update – Apple Magic Mouse pros and cons
I got my new apple mouse – it’s very light and small compared to the Logitech MX300 I’ve been using for years. It is maybe a bit too small for my hands, but it is very comfortable. Clicking has a solid feedback, and the touch scroll weel is nice, even if I miss the usual clicking of traditional wheels. The mouse tracks very well but it can’t work on my glass desk without a mouse pad.
In the end
The new Apple Magic mouse seems a solid product. The only thing that deceives is the swipe function,which I ended up turning off because it kept triggering too easily during my mouse “homing” (when you grab it, after working with two hands on the keyboard).
SSD drives will be a great revolution in computer hardware in 2009….that’s what you will also think in a few minutes.
Side by side a Late 2008 Macbook (2.4 ghz, Fujitsu 5400 RPM traditional stock drive, 2 gb ram) with a First Generation Macbook Air (1.8Ghz, 64 Gb stock SSD Drive) doing some common tasks – the short story: Macbook Air is always faster in booting and launching applications. Continue reading
Just a quick note – Is this all new, isn’t it?
While performing some Google search, I just saw at the bottom of the SERP a “Add a result” link-wich shows when clicked a small form…and even more links!
- Add a page that you’d like to see the next time you search for
- See all my SearchWiki notes
- See all notes for this SearchWiki
- Learn more
Seems like Google is starting to more explicitly accept user feedback – it’s a very precious “user generated content” for Google, wich might lead to a better search experience.
I have some questions though…what if some black hat SEO starts to fool the system, maybe using some nasty proxies to simulate many users voting for his site?
Just activate this WordPress plugin, and it will send to the post author a notification email when the blog administrator will publish his post/draft (or edit article and republish).
A must for community wordpress-based websites! I wrote it since I couldn’t find any other suitable plugin to do this. Up and running on some pretty large wp 2.6 – 2.6.3 installs. Should work on all recent wordpress installs. No configuration necessary.
This post is outdated – please read my advice for multilingual WordPress here:
I saw lots of interest for this subject – Hey , Matt, isn’t it time for WordPress to get multilingual?
I wrote this simple plugin just because I hated most other solutions, that proved very cumbersome and not very clean – but lately I’m experimenting with good success the new version of the qTranslate plugin wich incorporates much of the desired functionality, and some more bells and whistles, while keeping installation simple:
So this plugin may be a better option for you. I’m going to focus on making qTranslate more SEO!
This is a plugin to turn WordPress into a simple MultiLanguage CMS.
There are other plugins to do so but this one is very light, easy, basic, easily hackable and SEO-friendly.
It has some limits, but it can be perfect in order to use WordPress as a multilanguage basic CMS. Perfect for a multilanguage company website or anything else not too complicated.
The plugin only handles pages. Posts are still there, but the same old way:only in the main language.
The idea behind this simple plugin is that basically, the navigational structure of a multilanguage website looks anyway like a tree, and so it can be perfectly matched via the WordPress standard Page Parent mechanism.
The only problem would be that your theme would obviously list pages in your navigational menus without discerning the language. So we need to introduce a new function to do it properly. That’s what the plugin is mainly for. Don’t worry, it’s very easy to setup once you understand the basic idea!
First, some good news: if something goes wrong and you don’t like this plugin, remember that it does not alter any table of your precious wordpress install. We’re in beta, after all. But I have many websites happily running this plugin.
To make the plugin work, you need to hack your theme just a bit in order to use the new function to list pages, wich will show only pages in the current language, and to insert the classic language switch links/flags. Backup your theme first, and then start hacking!
- English, French, Deutsch, Italian, Dutch and Spanish supported
- Handle easily the website’s architecture via classic Parent Page WordPress feature, very intuitive and decently easy to maintain for simple websites!
- The plugin assumes you want English as the default language (this can be easily changed)
- We assume your website has English pages before starting the tutorial
- The plugin will NOT change the URLS of your English pages. This is good news for the search engines!
- Permalinks MUST be enabled (your page’s URL should look like www.domain.com/page-name, NOT www.domain,com/?p=15. (If permalinks are not enabled, the mlg_links function will not work, and you’ll have to do some easy homework manually placing in your theme links to the the foreign homepages)
Install this preliminary great plugin: is_child. Activate the plugin.This is needed in order to make everything work. MultiLanguage CMS will break your theme if is_child is not installed and active!
Now, download and install the Multilanguage CMS plugin:
After downloading, activate the plugin. No configuration necessary here. Now take a deep breath and go on!
Hack your WordPress Theme to call the new template tags!
That is very easy but needs a bit patience for the newbies. Some minutes, shouldn’t be more! You just need to know how to use an FTP client and a text editor.
Typically you’ll have to edit your header.php (or more files) in the active Theme folder.
In this file, substitute the standard wp_list_pages function with the wp_mlg_list_pages function, introduced by the plugin.
<ul><?php wp_mlg_list_pages(‘&title_li=’); ?></ul>
And then decide where do you want to put the language switching standard navigation links. Somewhere in the header, right? Or maybe in the sidebar ? (SamsarinPhpWidget would be handy)
Just call the mlg_links function – copy and paste this code wherever you want the language switching links to appear:
This function simply echoes some links, showing only languages that have at least a page. Continue reading!
How to add a new language – handling the languages in the WordPress admin panel
We assume your WordPress website has already pages for the main language (typically English).
So let’s see how to add a language! Be careful to follow the instructions precisely and it will work in a snap. Pay attention to lowercase / uppercase – we have some case sensitive stuff here.
- Create a new page (for the new language homepage), add some content
- In this page, create a custom field called mlg_home and set value to the abbreviation of it’s language (it for Italian, de for deutsch, nl for Dutch, es for Spanish, fr for French…) (this explains to the plugin that the current page will be the homepage of the specified language) VIEW SCREENSHOT
- Publish the page
- For SEO: Re-edit the page and set the page slug to the abbreviation of the new language (it for Italian, de for deutsch, nl for Dutch, es for Spanish, fr for French…) so the URL will be pretty VIEW SCREENSHOT
- To add more pages in that language: Create page, add content, and select the right language’s home page in the Page Parent select. So you are putting new pages in their right place in the ideal tree architecture of the web site.
You’re done! If you did everything well, you’ll see that a new link is born for the new language (printed by the mlg_links function), and clicking this link you should see only pages of that language listed by the wp_mlg_list_pages function you’ve added before.
How do I disable the plugin? What, the theme breaks?
If you want to disable the plugin, make sure you revert the theme hacks BEFORE – otherwise your theme will break. This is why I advide you to backup your theme before installing the plugin. Anyway, it’s not a great problem: You’ll still be able to enter the wp-admin if you’re stuck in such a situation – just reactivate the plugin and everything will come back to life. This happens because you are calling a function wich is not defined. You could easily avoid that using if function_exists – but I wanted to keep the code as elementary in the example.