The “FG Joomla to WordPress” plugin is a WordPress plugin that migrates posts, categories, sections, images, medias, tags, users, menus, comments and views from Joomla/Mambo to WordPress.
It has been tested with Joomla 1.0, 1.5, 1.6, 1.7, 2.5, 3.0 and 3.1, Mambo 4.5 and 4.6 and WordPress 3.7 on huge databases (72 000+ posts). It is compatible with multisite installations.
The free version is for personal blogs.
If you want to migrate a professional site or a site with multiple users or want to use an add-on, the Premium version is for you.
The Premium version is working with a standard installation of Joomla and a standard installation of WordPress. If you are using Joomla extensions that you want to migrate as well, please have a look at the add-ons page.
Please note that the Premium version is required for all the add-ons.
- English (default)
- French (fr_FR)
- Spanish (es_ES)
- German (de_DE)
- Russian (ru_RU)
- Polish (pl_PL)
The add-ons enhance the features of the plugin FG Joomla to WordPress Premium.
Please note that the Premium version is required for all the add-ons.
Import all the K2 content to WordPress
Import the Flexicontent content
Import the EasyBlog content
Import the Zoo content
Search Engine Friendly (SEF) add-ons
Import the sh404sef URLs
Import the JoomSEF URLs
Import the OpenSEF URLs
Import the JComments comments
Import the JomComment comments
Keeps the number of views of each article
Import the attachments from the Attachments Joomla extension
Import the Joomlatags tags
Import the Kunena forums to bbPress
Import the Phoca Gallery images
Import the Rokbox images
I get the message: “[fgj2wp] Couldn’t connect to the Joomla database. Please check your parameters. And be sure the WordPress server can access the Joomla database.
SQLSTATE  Access denied for user ‘xxx’@'localhost’ (using password: YES)”
- First verify your login and password to your Joomla database.
- If Joomla and WordPress are not installed on the same host, you can do this:
- export the Joomla database to a SQL file (with phpMyAdmin for example)
- import this SQL file on the same database as WordPress
- run the migration by using WordPress database credentials (host, user, password, database) instead of the Joomla ones in the plugin settings.
The migration stops and I get the message: “Fatal error: Allowed memory size of XXXXXX bytes exhausted”
- You can run the migration again. It will continue where it stopped.
- You can add: `define(‘WP_MEMORY_LIMIT’, ’64M’);` in your wp-config.php file to increase the memory allowed by WordPress
- You can also increase the memory limit in php.ini if you have write access to this file (ie: memory_limit = 128M).
The media are not imported
- Check the URL field that you filled in the plugin settings. It must be your Joomla home page URL and must start with http://
The media are not imported and I get the error message: “Warning: copy() [function.copy]: URL file-access is disabled in the server configuration”
- The PHP directive “Allow URL fopen” must be turned on in php.ini to copy the medias. If your remote host doesn’t allow this directive, you will have to do the migration on localhost.
Nothing is imported at all
- Check your Joomla version. The Joomla 1.0 database has got a different structure from the other versions of Joomla. Importing Joomla 1.0 database is a Premium feature.
All the posts are not migrated. Why ?
- The posts put in trash are not migrated. But archived and unpublished posts are migrated as drafts.
I get the message: “Fatal error: Class ‘PDO’ not found”
- PDO and PDO_MySQL libraries are needed. You must enable them in php.ini.
Or on Ubuntu:
sudo php5enmod pdo
sudo service apache2 reload
I get this error: PHP Fatal error: Undefined class constant ‘MYSQL_ATTR_INIT_COMMAND’
- You have to enable PDO_MySQL in php.ini. That means uncomment the line extension=pdo_mysql.so in php.ini
Does the migration process modify the Joomla site it migrates from?
- No, it only reads the Joomla database.
I get this error: Erreur !: SQLSTATE[HY000]  Unknown system variable ‘NAMES’
- It comes from MySQL 4.0. It will work if you move your database to MySQL 5.0 before running the migration.
None image get transferred into the WordPress uploads folder. I’m using Xampp on Windows.
- Xampp puts the htdocs in the applications folder which is write protected. You need to move the htdocs to a writeable folder.
How to import content from one section as posts and another section as pages?
- You can use the Convert Post Types plugin after the migration.
Where are stored the authors aliases?
- Authors aliases are stored in the custom field “author_alias”. You can see it by displaying the custom fields in the edit post screen.
Redirects don’t work
- Choose a permalink different from the default one in the WordPress permalinks settings. You can do it either before or after the migration.
Are the user passwords kept during the import?
- Yes, since version 1.18.0.
Don’t hesitate to let a comment on the forum or to report bugs if you found some. http://wordpress.org/support/plugin/fg-joomla-to-wordpress
Free version Change Log
Premium version Change Log
New: Display error message if PDO is not enabled
New: Drastically improve the speed of the users deletion
New: Display SQL errors in debug mode
Fixed: Blank page when the users table or the menus table didn’t exist
New: Add Zoo support
New: Check if the upload directory is writable
Tested with WordPress 3.7.1
Fixed: The navigation menus were not imported when the articles were imported as pages
Fixed: Import the categories even when the articles are imported as pages
Tested with WordPress 3.7
Fixed: Meta descriptions and meta keywords were overwritten by empty sh404sef meta data
Fixed: “Warning: sprintf(): Too few arguments” message for image captions with %
New: Enable EasyBlog menus import
Fixed: nested category menus
Fixed: Joomla 1.0 menus were not imported
New translation: Spanish (thanks to Bradis García L.)
Fixed: Joomla 2.5+ featured images not imported
Fixed: Use the modified post date if the creation date is empty
Fixed: Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object
New: Display the author aliases
Fixed: The menus were not imported for Joomla versions > 1.5
Fixed: Some spaces were removed (due to the extra newlines removal)
Fixed: Better rule for the convert_post_attribs_to_array function
Fixed: “WordPress database error Field ‘post_content’ doesn’t have a default value”
Fixed: Fatal error: Call to undefined function parse_ini_string() when PHP < 5.3.0
New: Add import of meta title and canonical (used by JoomSEF add-on)
New: Import the page breaks
New: Option to import the Joomla introtext in the post and in the excerpt
New: Use the show_intro article parameter to import the introtext in the content or not
Tested with WordPress 3.6.1
New: Import users passwords
New: Compatibility with Joomla 3.1
Fixed: Remove extra newlines
New: Add automatically http:// at the beginning of the URL if it is missing
New: Option for the first image import
New: Option to import images with duplicate names
New translation: Polish (Thanks to Łukasz Z.)
Optimize the Joomla connection
New: Option to not import archived posts or to import them as drafts or as published posts
New: Compatibility with Kunena users
New: Import archived posts as drafts
Tested with WordPress 3.6
Fixed: The HTML classes were lost in the a-href and img tags
Unset by default the checkbox «Import the text above the “read more” to the excerpt»
Fixed: The caption shortcode is imported twice if the image has a link a-href pointing to a different image
New: Import images captions
New: Migrates the meta description and the meta keywords to WordPress SEO by Yoast
Improve speed of processing the image links
Update the FAQ
Fixed: Warning during activation
New: Migrates the Joomla navigation menus
New: SEO, keeps the Joomla article ID (as an option)
New: Ability to deactivate the redirects
Tested with WordPress 3.5.2
Fixed: Replaces the publication date by the creation date as Joomla uses the creation date for sorting articles
New: Add a button to remove the categories prefixes
New: Option to not use the first post image as the featured image
New: Import external media (as an option)
Fixed: Broken links to author pages
Fixed: The usernames with Greek characters were not imported
New translation: Russian (Thanks to Julia N.)
New: Compatibility with the dynamicImage mambot (Joomla 1.0 and Mambo)
Fixed: Categories hierarchy lost when parent categories had an id greater than their children
New: Redirect /view URLs
Fixed: With a multisite installation, delete only the current blog users and not all the multisite users
Fixed: Posts were not imported when the skip media option was off
Fixed: Categories hierarchy lost when parent categories had an id greater than their children (Joomla 1.6+)
New: Add hooks for extra images and after saving options
Tested with WordPress 3.5.1
New: Add hooks in the modify_links method
New: Add a hook for extra options
Fixed: Move the fgj2wp_post_empty_database hook
New: Compatibility with Joomla 3.0
New: Option to delete only new imported posts without deleting the whole database
Fixed: URL redirect works with sticky posts
Fixed: the internal links where not modified on pages
Tested with WordPress 3.5
New: Button to test the database connection
New: Improve the user experience by displaying explanations on the parameters and error messages
New: get_categories hook modified to be able to migrate non K2 databases even when the K2 module is activated
Option to not import already imported medias
Add a hook for Flexicontent module
Fixed: Compatibility issue with WordPress < 3.3
Fixed: Cache flushed after the migration
New: Better compatibility for copying media: uses the WordPress HTTP API
New: Enable modules
New: Compatibility with PHP 5.1
New: Compatibility with WordPress 3.0
New: Better compatibility for copying media (uses cURL)
Fixed: Bug in the URL rewriting module
Update the FAQ
New: Compatibility with Joomla 2.5
New: Migrates Joomla 2.5 featured images
New: Migrates all users. Users which are not authors are imported with the subscriber role.
New: Compatibility with Joomla 1.0 and Mambo 4.5 and 4.6
Fixed: Clean the cache after emptying the database
Fixed: The categories slugs were not imported if they had no alias
New: Compatibility with Joomla 1.6 and 1.7
New: Can import posts as pages
Fixed: The keywords were not imported
Fixed: Doesn’t import empty authors aliases
Update the FAQ
New: Migrate the authors alias in the custom field “author_alias”
Tested with WordPress 3.4
Fixed: Conflict between Joomla URLs and events URLs that begin with numbers
Fixed: Add “c” in the category slug to not be in conflict with the Joomla URLs
New: SEO. The Joomla URLs are automatically redirected (301 redirection) to the new WordPress URLs using the permalink settings. So the old URLs don’t appear as “404 not found” and all traffic is kept.
Initial version : Migrates the authors