Posted on

Bug Eliminated – Recent Posts Is Now Working

plugin: f5sites-shared-post-tables-and-uploads-folders

When working with an emergency project we must set priorities, testings of plugins can be exhaustive, nobody want’s to retest every location where the plugin is installed whenever and minor modification occurs, but when we are talking in a fast pace project with no planning and just one mark, proves that is and worth effort, the process of testing is even worst.

So is basically working under a large growing mess, annotations, papers and folder, software for project management, nothing can really help in that very start moment of a project, because changes are very often. When you finally reach an first stable version is time to get back on track of work left behind.

The Recent Posts widget was not working and annoying me very much, consuming and stressing my head, I then realized that it is almost the center of the blog, if WordPress is getting that list wrong, with content from other blogs and languages visitors may not understand where they are, it become a urgency need to solve.

I am very happy that I can finally get back on development track and advanced that question, bug solved and most important, now I can share all my blogs links, without getting people confusing asking themselves why that Recent Posts links is showing that weird stuff, now everyone can navigate safe and be related with the right content in the right time.

 

Posted on

Our first public and opensource WordPress plugin

plugin: f5sites-shared-post-tables-and-uploads-folders

After almost 9 months of tests and improvements, a lot of risk taken, we got in alpha stage of development for Shared WordPress Post Type and Taxonomies + Uploads Folder. The projects uncertainty itself seems not enough, if it was about risk taken, that new plugin initiative was a big all in, because I it stopped every single project for more 6-9 months, again, latening market entrance.

Years ago, 2014, a recent bachelor programmer said to me that WordPress data model was a mess, I took it personally and go look for more informations and sadly find out that he was partially correct, the simplicity of it’s model was very good for some situation, but locks out the developer in some scalability problems, if not well configured.

WordPress development is already fast, it has dozen of bult-in functions and integration, for start a new project is easy as use Fantastic or other script installer to get site ready in seconds. But for quickest deployment ever it was a prision, one installation for each project is the start of a big mess.

So the first step of rearrangement was simple using one single install for all blogs, and take the code dependency management to the next level, using Composer. Next is share all the users across single installations, it was a huge progress, and finally why don’t share blog posts too? In that point we can start answering where is the “mess”.

Objects are stored mixed in database schema, blog posts is stored as the same global type of products, pages, menus, contact forms, and every object called post_type. To make things more complicated there is a separated table for postmeta, it is a relational table with same index (post ID), so you must let wp address it’s number, and using a second table will make unique identifiers desync, it is very hard schema to break.

But came to me that the solution was easy, don’t take me too long to realize that it is actually better than worst, I can now share pages, menus, contact forms, midia, products, everything, withou losing control of some data stored in single databases, for each single installation. It was just a question to make it works well, sharing post_types and don’t break-up WordPress, all of it without touching core code, just by enabling/disabling a plugin, and after 9 months of intensive tests and twice almost abandoned it, finally it get stabilized and ready for refinements.

For separate singe install shared data I used a category, and for automatized more the process the category is exactly the domain name, so just check the domains when creating a blog post, and will be displayed only in that domain. For products it works even better, it list all products and just indicates and redirects the user to the correct store domain, it was great.

It also inaugurate a new era of development, focusing most effort in making public open-source software, hosted primary on open Github configuration, for free download and re-utilization, we perceive a new paradigm of value on it initiative. It stills in alpha, but already available for public.