FG Joomla to WordPress


This plugin migrates sections, categories, posts, images, medias and tags from Joomla to WordPress.

It has been tested with Joomla versions 1.5 through 3.9 and WordPress 5.6 on huge databases. It is compatible with multisite installations.

Major features include:

  • migrates Joomla sections as categories
  • migrates categories as sub-categories
  • migrates Joomla posts (published, unpublished and archived)
  • migrates Joomla web links
  • uploads all the posts media in WP uploads directories (as an option)
  • uploads external media (as an option)
  • modifies the post content to keep the media links
  • resizes images according to the sizes defined in WP
  • defines the featured image to be the first post image
  • keeps the alt image attribute
  • keeps the image caption
  • modifies the internal links
  • migrates meta keywords as tags
  • migrates page breaks
  • can import Joomla articles as posts or pages

No need to subscribe to an external web site.

Premium version

The Premium version includes these extra features:

  • migrates authors and other users with their passwords
  • migrates the navigation menus
  • SEO: migrates the meta description and the meta keywords
  • SEO: keeps the Joomla articles IDs or redirects Joomla URLs to the new WordPress URLs
  • compatible with Joomla 1.0 and Mambo 4.5 and 4.6 (process {mosimages} and {mospagebreak})
  • migrates Joomla 1.0 static articles as pages
  • migrates Joomla 2.5+ featured images
  • migrates Joomla 3.1+ tags
  • migrates Mambo data
  • migrates Elxis data (Joomla 1.0 fork)
  • ability to run the import automatically from the cron

The Premium version can be purchased on: https://www.fredericgilles.net/fg-joomla-to-wordpress/


The Premium version allows the use of add-ons that enhance functionality:

  • K2
  • EasyBlog
  • Flexicontent
  • Zoo
  • Kunena forum
  • sh404sef
  • JoomSEF
  • OpenSEF
  • WP-PostViews (keep Joomla hits)
  • JComments
  • JomComment
  • JDownloads
  • Joomlatags
  • Attachments
  • Rokbox
  • RokGallery
  • JoomGallery
  • PhocaDownload
  • PhocaGallery
  • Joom!Fish translations to WPML
  • JEvents events
  • Contact Manager
  • Docman
  • Virtuemart
  • JReviews
  • Mosets Tree
  • User Groups
  • WPML
  • Simple Image Gallery & Simple Image Gallery Pro
  • RSGallery
  • Community Builder
  • RSBlog
  • AllVideos
  • HikaShop
  • Acymailing

These modules can be purchased on: https://www.fredericgilles.net/fg-joomla-to-wordpress/add-ons/



  • English (default)
  • French (fr_FR)
  • Spanish (es_ES)
  • Italian (it_IT)
  • German (de_DE)
  • Russian (ru_RU)
  • Polish (pl_PL)
  • Bulgarian (bg_BG)
  • Brazilian (pt_BR)
  • Greek (el_EL)
  • other can be translated


  • Parameters screen


  1. Install the plugin in the Admin => Plugins menu => Add New => Upload => Select the zip file => Install Now
  2. Activate the plugin in the Admin => Plugins menu
  3. Run the importer in Tools > Import > Joomla (FG)
  4. Configure the plugin settings. You can find the Joomla database parameters in the Joomla file configuration.php
    Hostname = $host
    Port = 3306 (standard MySQL port)
    Database = $db
    Username = $user
    Password = $password
    Joomla Table Prefix = $dbprefix


I get the message: “[fg-joomla-to-wordpress] Couldn’t connect to the Joomla database. Please check your parameters. And be sure the WordPress server can access the Joomla database. SQLSTATE[28000] [1045] Access denied for user ‘xxx’@’localhost’ (using password: YES)”

  • First verify your login and password to the Joomla database.
    If Joomla and WordPress are not installed on the same host:
  • If you use CPanel on the Joomla server, a solution is to allow a remote MySQL connection.
    • go into the Cpanel of the Joomla server
    • go down to Database section and click “Remote MySQL”
    • There you can add an access host (WordPress host). Enter the access host as the SOME-WEBSITE-DOMAIN-OR-IP-ADDRESS and click add host.
  • Another solution is to copy the Joomla database on the WordPress database:
    • 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.

I get this error when testing the connection: “SQLSTATE[HY000] [2002] Connection refused” or “SQLSTATE[HY000] [2002] No such file or directory”

  • This error happens when the host is set like localhost:/tmp/mysql5d.sock
    Instead, you must set the host to be localhost;unix_socket=/tmp/mysql5d.sock

The migration stops and I get the message: “Fatal error: Allowed memory size of XXXXXX bytes exhausted” or I get the message: “Internal server error”

  • First, deactivate all the WordPress plugins except the ones used for the migration
  • You can run the migration again. It will continue where it stopped.
  • You can add: define('WP_MEMORY_LIMIT', '512M'); 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 = 1G). See the increase memory limit procedure.

I get a blank screen and the import seems to be stopped

  • Same as above

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 unpublished and archived posts are migrated as drafts.
  • Some users reported that the Zend Framework causes an incomplete import. So, if all the data is not migrated, consider deactivating the Zend Framework during the migration.

I get the message: “Fatal error: Class ‘PDO’ not found”

  • PDO and PDO_MySQL libraries are needed. You must enable them in php.ini on the WordPress host.
    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 on the WordPress host. 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] [1193] 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.

I get this error “Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”

  • You must use at least PHP 5.3 on your WordPress site.

I get this error: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

  • It is a compatibility issue with your version of MySQL.
    You can read this post to fix it: http://forumsarchive.laravel.io/viewtopic.php?id=8667

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.

Do I need to keep the plugin activated after the migration?

  • No, you can deactivate or even uninstall the plugin after the migration (for the free version only).

Is there a log file to show the information from the import?

  • Yes since version 1.45.0. First you must put these lines in wp-config.php:
    define(‘WP_DEBUG’, true);
    define(‘WP_DEBUG_LOG’, true);
    And the messages will be logged to wp-content/debug.log.

How does the plugin handle Weblinks?

  • The plugin imports the Joomla web links to WordPress links managed by the Link Manager plugin: https://wordpress.org/plugins/link-manager/

My screen hangs because of a lot of errors in the log window

  • You can stop the log auto-refresh by unselecting the log auto-refresh checkbox

Don’t hesitate to let a comment on the forum or to report bugs if you found some.


February 21, 2021
Converted a Joomla website with over 3,500 images and over 250 articles. With little effort or confusion conversion achieved. Used FG Joomla Professional and Joom Gallery extension. All menus converted as well as page layouts etc. One minor hiccup was solved quickly through professional support. Recommend highly!
February 19, 2021
Cinque stelle meritatissime. Mi aspettavo disastri dovendo migrare 31000 post, anche se solo testuali. Invece è andato tutto alla grande, assistenza velocissima e cortesissima.
February 14, 2021
I needed to convert a Joomla 1.0.15 website (with a significant amount of JomComments) to WordPress 5.6. I purchased FG Joomla To WordPress and the JomComment module, and was able to do the conversion in less than 5 minutes of my time. The process hung at 27%, so I emailed the developer to confirm the best way to proceed. He responded quickly, and directed me to confirm in the database that the process was not still running, and then click the resume button. And that was all it took. Honestly, it took me longer to pick out a theme for the new WordPress install than it did to convert the site from ancient Joomla to current WordPress! I HIGHLY recommend these plugins as they saved me hours of work. Thanks very much!
February 10, 2021
I had to migrate a 10 year old website to WordPress – thousands of pictures, hundreds of galleries, hundreds of events, and a very active newsletter program. The FredericGilles.net premium plugins, Migration, ACYmailings, JEvents, and Simple Image Library, were rich in precise functionality and very easy to implement. Because of the huge size of the old website, the staff of FredericGilles.net worked with me for several days, migrating the website and adding custom features. They added additional necessary plugins to my new site that I had not even thought off. They were real experts with in depth knowledge of Joomla and WordPress. The investment was worth every penny – not only in countless hours of development I saved, but the website looks great. My customers are very happy, and of course, so am I. Thank you Byron and Frédéric! Un grand merci bien mérité
January 30, 2021
A must have plugin if you need to migrate from Joomla to WordPress. The Zoo addon helped me convert hundreds of pages. The tech support is amazing. Highly recommend!!!
January 23, 2021
importation did not work, and I allowed to disable plugins. They did it. They also removed my default template, including twenty customized widgets, and left, killing our website instead of helping us. They did not apologize, either. I tried to put back my template, but widgets were definitively gone. I had to restore our website from a previous backup and lost 24H of data. As you can see, giving them access to your website is incredibly dangerous and they don't deserve to stay in business.
Read all 260 reviews

Contributors & Developers

“FG Joomla to WordPress” is open source software. The following people have contributed to this plugin.


“FG Joomla to WordPress” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “FG Joomla to WordPress” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fixed: [ERROR] Article #: Invalid date.
  • Tested with WordPress 5.6.2


  • Fixed: Notice: Trying to access array offset on value of type null


  • New: Allow the add-ons to count the number of categories of specific Joomla extensions
  • Tested with WordPress 5.6.1


  • New: Check if we need the Acymailing add-on
  • Fixed: Directory contains “http” when using the FTP or the file system download methods


  • Fixed: Plugin and add-ons not displayed in the debug informations on Windows
  • Fixed: Images inserted in the post content with width and height = 0 when the option “Don’t generate the thumbnails” is selected


  • Tested with WordPress 5.6


  • New: Add the function wp_table_exists()
  • New: Add the functions copy_dir(), copy_file() and is_dir() in the download manager
  • Fixed: Empty files were not transferred


  • Fixed: JQuery Migrate warning: jQuery.fn.load() is deprecated
  • Fixed: Import the GMT date instead of the local date


  • Fixed: Duplicated slash in the FTP and File System path
  • Fixed: Extra warning if the file to download doesn’t exist
  • New: Display FTP errors


  • Fixed: Character ” not displayed in the settings
  • Fixed: Warning: scandir(): failed to open dir: No such file or directory


  • New: Ability to change the default import timeout by adding define('IMPORT_TIMEOUT', 7200); in the wp-config.php file


  • Fixed: Files containing spaces were not downloaded with the file system or FTP protocol


  • New: Ability to download the media by http, ftp or file system
  • New: Add MySQL wait_timeout in the Debug Info
  • New: Display the SQL errors and die if MySQL server has gone away
  • Optimization: Don’t regenerate the thumbnails if the attachment already exists
  • Optimization: Don’t import the file if the attachment already exists
  • Tested with WordPress 5.5.3


  • Fixed: Images not imported
  • Fixed: Progress bar at 0% if the site is in https and the WordPress general settings are in http


  • Fixed: Images not imported (Forbidden user-agent)


  • New: Check if we need the RokGallery add-on
  • Tested with WordPress 5.5.1


  • Compatible with WordPress 5.5
  • Fixed: Timezone was not the same between the start and the end time in the logs
  • Fixed: Links pointing to weblinks were wrong after modifying the internal links


  • New: Add an option to not generate the images thumbnails
  • New: Make the max_allowed_packet human readable
  • Change: Set the default media timeout to 20 seconds


  • New: Check if we need the PhocaDownload add-on


  • New: Display the PHP errors in the logs
  • New: Check if the Simple Image Gallery Pro plugin is used on Joomla
  • Tested with WordPress 5.4.2


  • Tested with WordPress 5.4.1


  • New: Check if the “Simple Image Gallery” plugin is installed
  • Fixed: Logs were not displayed
  • Tested with WordPress 5.4


  • Fixed: Media links with arguments were not imported


  • New: Add allow_url_fopen in the Debug Info
  • Fixed: Notice: Undefined index: REQUEST_SCHEME


  • Fixed: Prevent WordPress from breaking links containing ‘:’


  • Fixed: Logs were not displayed due to mod_security


  • New: Modify internal links which contain
  • Tweak: Add $image_description argument in the insert_attachment() method


  • New: Modify internal links which contain underscores
  • Fixed: Notice: date_default_timezone_set(): Timezone ID ” is invalid


  • Fixed: Some internal links containing anchors were badly modified


  • Tested with WordPress 5.3.2


  • Fixed: Featured images not imported


  • Tested with WordPress 5.3


  • Fixed: Wrong number of imported media displayed
  • Fixed: Wrong number of imported tags displayed
  • Tested with WordPress 5.2.4


  • New: Check if JDownloads is used
  • Tweak: Refactoring


  • Fixed: Logs were not displayed if the URL is wrong in the WordPress general settings


  • New: Download the media even if they are redirected
  • Fixed: Warning: Invalid argument supplied for foreach()
  • Fixed: Copying to clipboard wasn’t working if something was already selected


  • New: Add the max_allowed_packet in the Debug Info tab


  • New: Add an help tab
  • New: Add a debug info tab
  • Tested with WordPress 5.2.3


  • Fixed: [ERROR] Error:SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘c.state’ in ‘where clause’
  • Fixed: Update the pt_BR translation


  • Fixed: Notice: Undefined variable: sql
  • Fixed: the featured image was not removed from the content on Mambo databases


  • Tested with WordPress 5.2.2


  • Tested with WordPress 5.2.1



  • Tested with WordPress 5.1.1


  • Tested with WordPress 5.0.3


  • New: Allow to download media from sites with a non valid SSL certificate
  • Fixed: Some NGINX servers were blocking the images downloads
  • Tested with WordPress 5.0.2


  • New: Cache database results to improve import speed
  • New: Add hooks
  • Tested with WordPress 5.0


  • Fixed: Images with HTML entities in the scr attribute were not imported


  • Tested with Joomla 3.9


  • New: Generate the audio and video meta data (ID3 tag, featured image)


  • Tweak: Rename WPML by Internationalization


  • Tested with WordPress 4.9.8


  • Fixed: Images not imported when the “data-src” attribute is used


  • Tweak: Add the function wc_upload_dir()
  • Tested with WordPress 4.9.6


  • New translation: Greek (thanks to Kostas A.)
  • Fixed: The media containing “+” in their filename were not imported


  • Fixed: Notice: Undefined index: date


  • New: Check if Community Builder 2.x is installed
  • Tested with WordPress 4.9.5


  • New: Check if we need the HikaShop module
  • Change the URL of the WP Filesystem SSH2 plugin
  • Tweak: Change the scope of the upload_dir() method


  • New: Add the “fgj2wp_pre_modify_link” filter hook


  • New: Allow the SFTP connection. It requires the plugin “WP Filesystem SSH2”.


  • New: Check if we need the plugins RSGallery, Simple Image Gallery, Simple Image Gallery Pro, Rokbox, AllVideos
  • Update the Spanish translations


  • New: Add the get_params() method (used in the Simple Image Gallery add-on)


  • Fixed: Notice: Undefined index: date
  • Tested with WordPress 4.9.4


  • New: Import the images embedded in the categories description
  • New: Allow HTML tags in categories description
  • Fixed: Links modified with wrong value


  • Tweak: Use WP_IMPORTING
  • Tested with WordPress 4.9.2


  • Fixed: Media containing “&” were not imported
  • Tested with WordPress 4.9.1


  • Tested with WordPress 4.9


  • Fixed: The width in the image caption was sometimes missing
  • Tested with WordPress 4.8.3


  • Fixed: Sanitize the file names with spaces
  • Tested with Joomla 3.8
  • Tested with WordPress 4.8.2


  • New: Check if we need the RSBlog module


  • New: Test if Falang is used on Joomla
  • Fixed: Security cross-site scripting (XSS) vulnerability in the Ajax importer
  • Tested with WordPress 4.8.1


  • New: Import the image caption in the media attachment page


  • New: Modify internal links in drafts


  • New: Block the import if the URL field is empty and if the media are not skipped
  • New: Add error messages and information


  • New: Add the percentage in the progress bar
  • New: Display the progress and the log when returning to the import page
  • Change: Restyling the progress bar
  • Fixed: Typo – replace “complete” by “completed”
  • Tested with WordPress 4.8


  • Compatible with Joomla 3.7
  • Tested with WordPress 4.7.4


  • Tested with WordPress 4.7.3


  • Fixed: Images not imported on some servers
  • Tested with WordPress 4.7.1


  • Tweak: Code refactoring


  • Tweak: Code refactoring


  • New: Add an option to remove the accents from the medias (useful on Windows)
  • Tested with WordPress 4.7


  • Fixed: Existing images attached to imported posts were removed when deleting the imported data
  • Fixed: Typo in Italian translation


  • Fixed: Images not imported on HTTPS sites: Warning: fsockopen(): unable to connect to https::80 (php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known)


  • Fixed: Wrong progress bar color


  • Fixed: The progress bar didn’t move during the first import
  • Fixed: The log window was empty during the first import


  • New: Check if the Community Builder module is required
  • Fixed: The “IMPORT COMPLETE” message was still displayed when the import was run again


  • Fixed: The images protected by a user agent protection were not imported


  • Tweak: Code refactoring


  • Fixed: Database passwords containing “<” were not accepted


  • New: Modify the tags links in the post content


  • New: Authorize the connections to Web sites that use invalid SSL certificates
  • Tweak: If the import is blocked, stop sending AJAX requests


  • Fixed: Review link broken
  • Fixed: Imported tags were not removed when removing imported data only


  • Fixed: Missing link between the post and its featured image
  • Fixed: Wrong number of comments displayed
  • Tested with WordPress 4.6.1


  • New: Display the number of data found in the Joomla database before importing
  • New: Display the needed modules as warnings before importing
  • Tested with WordPress 4.6


  • Tweak: Code optimization


  • Fixed: the “Modify internal links” function could break some links


  • Fixed: Internal links like catid=XXX&id=YYY were not modified
  • Tweak: Speed up and reduce the memory consumed by the modification of the internal links


  • New translation: Italian


  • New: Compatible with Joomla 3.6


  • Fixed: Display an error message when the process hangs
  • Tweak: Increase the speed of counting the terms


  • Tested with WordPress 4.5.3


  • Fixed: Don’t import the introtext in the post content if it is marked as hidden on Joomla


  • New: Compatibility between the Joom!Fish and Docman add-ons
  • Fixed: Wrong redirect when an attachment has the same name as a post


  • Fixed: Rewrite the function to delete only the imported data
  • Fixed: Categories import can hang if the import counter was resetted and the imported categories were not deleted


  • New: Option to import the featured images only


  • Fixed: The message “[ERROR] The import process is still running. Please wait before running it again.” sometimes appears after the process has crashed, and it prevents the import process to resume
  • FAQ updated


  • New: Add some hooks
  • Tweak: Code optimization
  • FAQ updated


  • Fixed: Images with line breaks inside the tag were not imported
  • Tested with WordPress 4.5.2


  • New: Allow image filenames starting with //


  • Tweak: Add functions useful for add-ons
  • Tested with WordPress 4.5.1


  • New: Ability to stop the log window auto-refresh


  • Tested with WordPress 4.5


  • New: Compatible with Joomla 3.5
  • Fixed: Images without slashes in their path were not imported


  • Fixed: Import stopped when a post has no title or no content
  • Fixed: The first image was not removed from the content when used both in the intro text and in the full text


  • Fixed: Notice: Undefined variable: imported_tags
  • Fixed: the progress bar was resetted when resuming the import


  • New: Modify the first image options
  • Tweak: Code refactoring


  • Fixed: Error :SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘c.extension’ in ‘where clause’


  • New: Use the WordPress FTP API instead of the phpseclib library
  • New: Better handle the progress bar
  • New: Don’t log the [COUNT] data in the log window
  • Fixed: Browser tab crashed when too much data was displayed in the log window


  • New: Modify the Joomla SEF links


  • New: Brazilian translation added
  • Fixed: When choosing “Import first image as featured only”, the first image was not removed from content if it was surrounded by a hyperlink


  • Fixed: Articles got the unassigned category when the category is a duplicate


  • Fixed: Infinite loop when some categories have duplicate names


  • Fixed: After a resume, the posts were imported as uncategorized
  • Tested with WordPress 4.4.2


  • New: Run the import in AJAX
  • New: Add a progress bar
  • New: Add a logger frame to see the logs in real time
  • New: Ability to stop the import
  • New: Compatible with PHP 7


  • Fixed: Medias with relative paths were not uploaded to the right folder when not using month- and year-based folders


  • New: For the articles and categories whose alias is a date, the imported slug will be the title and not the alias


  • New: Keep the Joomla media folder tree when the uploads are not organized into month- and year-based folders


  • Fixed: Featured image issue


  • Tested with WordPress 4.4.1


  • Fixed: Categories with null description were not imported


  • Tweak: Use the WordPress 4.4 term metas: performance improved, nomore need to add a category prefix
  • Tweak: Optimize code
  • Fixed: The notices and errors were sometimes displayed before the header is sent
  • Fixed: Categories with duplicated names were not imported
  • Fixed: The cache for the taxonomies different from category was not cleaned


  • Tested with WordPress 4.4


  • New: Add SFTP protocol
  • New: Import the {audio} tag
  • New: Add a link to the FAQ in the connection error message


  • New: Add an Import link on the plugins list page


  • Tweak: Code refactoring for unit tests


  • New: Add the hook ‘fgj2wp_get_wp_post_from_joomla_url’
  • Tweak: Code refactoring


  • Fixed: Don’t display the warning about WPML if JoomFish is used
  • Tweak: Change the range of the get_wp_post_id_from_joomla_id() function to be available for add-ons


  • New: Add the FTP settings (used for Simple Image Gallery add-on)


  • New: Make the platform more accessible to more languages
  • Update all the translations


  • New: Check if we need the WPML module


  • Tested with WordPress 4.3.1


  • Fixed some translations
  • New add-on: WPML to move the multilingual content


  • New: Add an anti-duplicate test if the user runs another import process again while one is still running
  • Fixed: Solve conflicts between FG plugins by limiting the Javascript scope


  • Fixed: Some medias with accents were not imported
  • Tested with WordPress 4.3


  • Tested with WordPress 4.2.4


  • Tested with WordPress 4.2.3


  • New: Change the video links {“video”} to WordPress video tags


  • Fixed: Fatal error: Call to a member function fetch() on a non-object


  • Tested with WordPress 4.2.2


  • Tested with WordPress 4.2.1


  • Tested with WordPress 4.2


  • Tweak: Restructure and optimize the images import functions
  • Tweak: Move the suspend cache functions into the dispatch method


  • Restructure the whole code using the BoilerPlate foundation
  • FAQ updated


  • Fixed: Remove duplicate hook in weblinks.php
  • New add-on: User Groups


  • New: Compatible with Joomla 3.4 (ignore weblinks)


  • New: Log the messages to wp-content/debug.log
  • Tweak: Code optimization
  • FAQ updated


  • Fixed: Import images even when there are linefeeds in the img tags


  • Fixed: Don’t import the posts as duplicates if the categories are duplicated on Joomla


  • Tested with WordPress 4.1.1


  • Fixed: the joomla_query() function was returning only one row
  • Update the German translation (thanks to Tobias C.)
  • Update the Spanish translation (thanks to Jacob R.)


  • Fixed: Multisite: Links that contain “:” were corrupted
  • FAQ updated


  • Tweak: Add hooks in the modify_links functions


  • FAQ updated
  • Tested with WordPress 4.1


  • Tweak: Don’t display the timeout field if the medias are skipped


  • New: Keep the anchor link when modifying the internal links
  • Tested with WordPress 4.0.1


  • Update the German translation (thanks to Tobias C.)


  • Update the Spanish translation (thanks to Bradis García L.)


  • Fixed: Allow backslashes in the articles content


  • Fixed: Remove extra slashes in the media filenames


  • Tweak: Simplify the posts count function


  • New: Add a timeout option


  • Fixed: Some image captions were not imported


  • Fixed: The media filename was empty on the attachment page
  • Tested with WordPress 4.0


  • New: Help screen


  • New: Functions to get the Joomla imported posts, categories and users
  • New add-on: JReviews


  • New: Function to get the Joomla installation language
  • New add-on: Virtuemart to WooCommerce
  • Tested with WordPress 3.9.2


  • Fixed: Define the width and the height of the images only if it isn’t defined yet


  • New: Modify the internal links for both posts, pages and custom post types


  • New: Add option to automatically remove the WordPress content before each import


  • New: Display the number of Joomla articles, categories, users and web links during the database connection test
  • New: Compatibility with Joomla 3.3


  • Fixed: Warning: Creating default object from empty value


  • Fixed: “Fatal error: Call to a member function fetch() on a non-object” for versions of MySQL < 5.0.3


  • New add-on: Docman
  • Tested with WordPress 3.9.1


  • New: Add a parameter to force the external media import


  • New: Import Web links


  • Tested with WordPress 3.9


  • New: Change the visibility of some methods to use them in add-ons
  • Fixed: Notice: Undefined index: width
  • Fixed: Notice: Undefined index: height


  • Fixed: Was displaying the warning “Your version of Joomla (probably 1.0) is not supported by this plugin.” when both the Premium and the free versions were activated
  • Tested with WordPress 3.8.2


  • New: Change the visibility of some methods to use them in add-ons


  • Fixed: Fatal error: Call to a member function fetch() on a non-object


  • New: The required modules are listed when testing the connection to Joomla


  • New: Nomore need to choose the Joomla version ; it is guessed by the plugin.
  • New: Add a message when trying to import a Joomla 1.0 database


  • New: Minor internal changes
  • FAQ updated


  • New: Add hooks
  • Fixed: Notice Undefined offset


  • Fixed: Don’t add the <!–more–> tag if the introtext is empty
  • Tested with WordPress 3.8.1


  • Fixed: Syntax error with parse_ini_string
  • Fixed: Images containing “%20” were not imported into the post content
  • FAQ updated


  • New: Compatibility with Joomla 3.2
  • New translation: Bulgarian (thanks to Hristo P.)


  • Fixed: The «Remove only new imported posts» option was not removing anything
  • Tested with WordPress 3.8


  • Fixed: Archived posts were always imported as drafts in Joomla 2.5


  • New: Display error message if PDO is not enabled


  • New: Display SQL errors in debug mode
  • Description updated


  • New: Check if the upload directory is writable
  • Tested with WordPress 3.7.1


  • Fixed: Import the categories even when the articles are imported as pages
  • Tested with WordPress 3.7


  • Fixed: “Warning: sprintf(): Too few arguments” message for image captions with %


  • New translation: Spanish (thanks to Bradis García L.)


  • 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


  • 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”


  • 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: 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
  • FAQ updated


  • Fixed: syntax error, “unexpected ‘<‘” in version 1.16.0


  • New: Option to import images with duplicate names
  • New translation: Polish (Thanks to Łukasz Z.)
  • FAQ updated


  • Optimize the Joomla connection


  • New: Option to not import archived posts or to import them as drafts or as published posts


  • 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
  • Improve speed of processing the image links
  • Update the FAQ


  • Tested with WordPress 3.5.2
  • New: Add a button to save the settings
  • New: Improve the speed of emptying the WordPress content


  • 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)
  • New translation: Russian (Thanks to Julia N.)


  • Fixed: Categories hierarchy lost when parent categories had an id greater than their children


  • 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
  • FAQ updated


  • New: Compatibility with Joomla 3.0
  • New: Option to delete only new imported posts without deleting the whole database


  • 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


  • New: Option to not import already imported medias


  • FAQ updated


  • Fixed: Cache flushed after the migration
  • Fixed: Compatibility issue with WordPress < 3.3


  • New: Better compatibility for copying media: uses the WordPress HTTP API


  • New: Better compatibility for copying media: uses the copy function if cURL is not loaded


  • New: Compatibility with PHP 5.1 (thanks to dmikam)
  • New: Compatibility with WordPress 3.0 (thanks to dmikam)
  • New: Better compatibility for copying media (uses cURL) (thanks to dmikam)


  • FAQ updated


  • New: Compatibility with Joomla 2.5


  • New hooks added
  • Description updated


  • FAQ updated


  • 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 (thanks to LWille)
  • Translation: German (thanks to LWille)


  • Tested with WordPress 3.4


  • Add “c” in the category slug to not be in conflict with the Joomla URLs
  • FAQ and description updated


  • New: Option to import meta keywords as tags


  • New: Deactivate the cache during the migration for improving speed


  • New: Modify posts internal links using WordPress permalinks setup
  • Fixed: Exhausted memory issue


  • Fixed: Don’t import HTML links as medias
  • FAQ updated


  • New: Get the post creation date when the publication date is empty
  • Fixed: Accept categories with spaces in alias


  • New: Import all media
  • Fixed: Do not reimport already imported categories
  • Fixed: Update categories cache
  • Fixed: Issue with media containing spaces
  • Fixed: Original images sizes are kept in post contents


  • New: Manage sections and categories duplicates
  • Fixed: Wrong categorization of posts


  • Update the FAQ
  • New: Can restart an import where it left after a crash (for big databases)
  • New: Display the number of categories, posts and images already imported
  • Fixed: Issue with categories with alias but no name
  • Fixed: Now import only post categories, not all categories (ie modules categories, …)


  • Fixed: The images with absolute links were not imported.
  • New: Option to skip the images import
  • New: Skip external images


  • Fixed: The content was not imported in the post content for the posts without a “Read more” link.
  • New: Option to choose to import the Joomla introtext in the excerpt or in the post content with a «Read more» tag.


  • Initial version: Import Joomla 1.5 sections, categories, posts and images