Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,154,229 members, 7,822,187 topics. Date: Thursday, 09 May 2024 at 08:04 AM

Why I Dumped Wordpress As A CMS (my Experience) - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / Why I Dumped Wordpress As A CMS (my Experience) (18450 Views)

Framework Or A CMS For An E-commerce Website? / HELP: I Need WYSIWYG INTEGRATED INTO A CMS / How To Build A CMS! Freedom From Wordpress.. (2) (3) (4)

(1) (2) (3) (4) (Reply) (Go Down)

Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 11:40am On Apr 19, 2015
The Year is 2010 and am looking to use a CMS for a website, now this is me tired of building from scratch when i can just build from an existing solution so my options are Drupal,Wordpress and Joomla. because those were the most popular CMS then.

Joomla well my OOP skills was terrible and besides the MVC in Joomla was weird JControllerRemiController didn't like the fact that i had to follow weird naming convention. Drupal well code looked complex to me so I was a noob nothing much to say. Wordpress yes let's use WordPress and along the line WordPress became my defacto CMS used it for sites,applications and other things. Fast forward to 2013 i started to encounter a series of issues while developing a complex site meant as a Fashion Directory. The issues were:

1. Templating

Templating in Wordpress is freaking difficult half of the time, you can't even say which page is being rendered, WP has an hierarchy of which template to be rendered when one is missing. Most of the time you'd think a certain page is rendered only to discover it could be the archive pages being rendered or something. So the only trick i used to knowing where i was, was using the function body_class , it puts the name of the template on the class of the body. Imagine the number of wasted hours just to ascertain this trick.

2. PHPUnit Testing

Long thing its actually one of the hardest thing to do here, so nothing much to say

3. Hooks and Events

By now a lot of you are probarbly familiar with the Publish and Subscribe Design Pattern where you have an object that emits an event and another object that subscribes to the event and takes the parameter. This is used in Zend Framework 1, Zend Framework 2 EventManager, Yii CEvent, Dojotoolkit (dojo/publish) and many systems and the principle is that you should have a place where you can easily know settiing of events takes place there, well sadly in wordpress you can make the add_action anywhere. in your plugin, template,function.php. Now because alot of plugins use this, you can spend weeks trying to clamp down the source of the Event be prepared to use Sublime to search for all add_action. Wordpress Hooks and Event can be added anywhere and everywhere. Developer Nightmare


4. Database Litter
WordPress totally screws MySQL you don't believe me check your wp-options, in my table i have close to 34000 rows of options...FOR WHAT ? other systems use JSON to serialize a bunch of options and retrieve them later, WP uses single value most times, and worst of all is the post_meta you can create a meta for a post, in most system the settings will be removed when you delete the Object responsible for creating the meta. However with wordpress you are gonna have oprhaned data just staying there unless you specifically delete those yourself.


5. Absolute URL
Nothing to say here , am sure you catch my drift when it comes to migration.

6. Performance Issues

Wordpress does alot of queries just to run your site it's terribly slow compared to other systems who Autoload objects when needed e.g Yii Framework. The Wordpress site i manage gets lots and lots of visits even from bellanaija,Konga and alot more. There are times I get called to enable cache and write some caching functions what haven't i played my hands on varnish,Memcache, WordPress transient just to get a good speed when other platforms like Processwire are just fast from the box.

Now let's move the Development issues those mentioned above are just normal issues now let's enter into deep Advanced Specific use case in Wordpress in this section am not talking about NotjustOk,Bellaniaja because as far am concerned those two sites and similar are not really pushing Wordpress or bending it to their will they use the normal parts of wordpress, if you don't believe me look at most wordpress sites in Nigeria and notice they all have that blog feel, although some would be different due to purchasing themes and all. But let's see some stuff hard to pull in WordPress

1. Custom Frontend Backend

Now i was tasked to create a backend for the users on the frontend meaning not knowing about the Wordpress dashboard . oh boy did i have a tough time. first in order to use session in Wordpress you have a use a add_action for the init event and do a session start there shocked shocked , meaning your chances of throwing a session has already been started becomes high because assuming another developer has thrown a session start before you but then again you can check for a session_exist(i presume).

Next my dashboard depends on Dojotoolkit my javascript framework which becomes another annonying phase. Because now Wordpress loads a lot of JavaScript regardless of whethere they are being used in that page or not, as long as you enqueue scripts all scripts are ready to load baby. God knows the Hell i faced especially with Wordpress Jetpack spinner Javascript file crashing my code. you don't believe me you can check.

2. Autoloading in Wordpress

Hello no , you can't use spl_autoload because alot of core Wordpress files are gonna crash tried it and it crashed meaning my class would be loaded as long as it's a plugin once a plugin is installed it will always load and run regardless of whether it's been used or not which makes wordpress slow and wasteful.

3. Ajax

obviously i need to perform an action call in Wordpress mehn this is another serious wahala, you need to a add_action 'wp_ajax" but wait that would work for registered users so non registered users you also need another hook 'wp_ajax_nopriv" what the hell. then also you have to exit at the end of function (though there's no issue as some systems do this). Ajax in Wordpress is pretty not straight forward and sometimes it creates a new session during my Ajax Request so it assumes another user and re-creates a session for it.

4. Layout like in MVC
Hell no there's nothing like that the closest you can get is get_template_part and worse part is that you can't send variables to it. why do you need this, you need to render a list of menu you don't want to have that in your template as too many logic besides it's a partials meaning you can reuse it in other templates just like Yii,Processwire and in Grails but nope not in Wordpress

To be continued I haven't even scratched the surface yet

4 Likes 1 Share

Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 11:56am On Apr 19, 2015
5. Malware Magnet

Although this can also be attributed to the type of host you use, however another reason could be plugins download or themes, However WordPress is a malware magenet, infact 50% of Wordpress sites are botnets without knowing, because of this reason i might need to update my resume and add (Cpanel Expert Monitor) because there's no day i don't check Awstats for Access Logs, Botnet , HTTP Referring sites and IP and also bandwith, I have blocked close to like 200bots if you think am lying just ask me for the .htaccess directives will be glad to share with you, got it from someone and also updated the sites. Also your RSS Feeds is enough to get your bandwith killed there's a weird search query that lists the rss feeds i didn't believe it when I check the stats because someone consumed 1.5gb on my bandwith within a short time, the host platform had to warn me.

Also got hacked it seems someone downloaded a free plugin and stuff as i don't manage the site I only code for it and help fix issue. This Wordpress project is the only one that's kept me awake and even cost me sleep.

3 Likes 2 Shares

Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 12:03pm On Apr 19, 2015
Community of Hardcoderz

Compared to platforms like Craft, Joomla and all, Wordpress's barrier to entry for beginners are too low, someone starting in PHP can easily use PHP and adopt so many bad practices. Symfony CMF , Processwire CMF , Drupal CMS have heavy use of Design patterns and all, so the quality of codes there are always top notch. Wordpress contributes to the reason why PHP is being ridiculed. Buy a wordpress template and set it up it's never gonna be the same as the picture advertised. Also try turning on WP_DEBUG and see the vast amounts of errors in a plugin. Plugins gave me hell during development time infact had to patch some plugins myself. extra unpaid job
Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 1:04pm On Apr 19, 2015
So wait pc guru you are a negative person why not talk about making WordPress better so here are some things to make wordpress better:

1. Decouple Everything, create a router , a Dispatcher, A Template/View Object and the Model can be any logic, allow plugins to bind to specific events and can only be allowed from a plugin Class meaning easy to spot.

2. Adopt Namespaces, and ensure Autoloading so that classes are only loaded when needed

3. Review the Security Model almost everyone knows that to access wordpress it's either via xmlrpc.php or the admin wp-admin in Processwire it could be anything thus throwing the hacker away.

4. Review Plugins and ensure that Plugins cannot be installed if the version is less than 5 Major releases or even 2, Moodle does this becomes by then there are major changes and bound to deprecated methods.

5. Rewrite a better Asset Management Component go and look at Asp.net MVC i used it last since MVC3 but a colleague gave me a project to work on and I noticed it a class that Bundles and Minifies resources even in my belowved framework Yii2 it has a better Asset Management than Yii1, even Laravel (not sure why i don't like this FW).

6. Follow PHP Fig there's a reason it's implemented to ensure PHP has a better coding standard

These are my few points though.

6 Likes

Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 1:09pm On Apr 19, 2015
Damn homie your article has converted me recommend me a CMS

Sadly i can't its all about what you feel attracted to my reasons differ from yours but here is a good start
https://www.cmscritic.com/dir/all/all/php/ however am assuming PHP since PHP is actually cheaper to use in Nigeria

1 Like

Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 1:17pm On Apr 19, 2015
So here's my reason why i chose Processwire but before i Start let me confess:

Processwire is not all that infact I would have gone with any Yii2 Framework or even concrete5, the only reason i didn't go with concrete5 is becasue it's built on Symfony and Laravel (still use Symfony) and I didn't have that for such learning curve besides anything like Zend Framework 2 is not something am willing to spend my time learning, I saw BoltCMS but didn't click with me and it uses Symfony i think i came upon Processwire after seeing the admin interface and how lightweight it was and here are my reasons for picking processwire.


1. Nothing like Twig or smarty just the good ol PHP template though it can be installed as a Plugin

2. Utilize existing Modules

Now let's say I want to send a mail to clients in my WordPress using a newsletter I woulld have to install a plugin with the interface and send it like that, unless the plugin is built to be used in another code which is often rare. In PW (Processwire) you can use another plugin with ease.
Infact most Modules have dependencies and rely on those Modules I think Wordpress just implemented that now,

so in PW
$mailTemplate=wire('EmailTemplate')->take('email','content');
$mailTemplate->send()


you see no stress

3. Modular Plugin Architecture
visit the sites it elaborates more on this

4. Page Object meaning everything I need for that page is attached to that page object. So in Wordpress you need a code to get attachement id and from that use another method to fetch meta data for the attached id in Processwire this is how you fetch images
$Page->images 
assuming your field images is an ImageType

This is how you resize images
Pages->images->resize(640,40)


Now assuming i want to get a field in About us which holds the about us text in a field called comapny_aboutus and want to display this in another page , In wordpress you'd need to call a wp_reset_query before making another WP_Query call but in PW it goes

$pages->find('about-us')->company_aboutus 


Infact the Wordpress complex system i used to write the fashon site that took me months took me weeks in Processwire
Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 1:30pm On Apr 19, 2015
For more information here is a link
http://processwire.com/about/why/

However Processwire doesn't support namespacing yet and stuff however it's something am willing to live with as the framework is flexible


ONCE AGAIN: This is not to bash WordPress wordpress is awesome when used as a blog but when it goes beyond that trust me you will go through hell. Anyone who has tried to extend Wordpress to do more than blogging will tell you the pain, those who do Woocommerce extensions and the rest do it because Wordpress is profitable and truly it is, I get paid to fix Wordpress issues or write plugins. But for personal complicated projects I don't use it at all. Ciao


Feel free to comment.

Hunger dey catch me cry

1 Like

Re: Why I Dumped Wordpress As A CMS (my Experience) by nollyj: 2:35pm On Apr 19, 2015
Nice write up. I get your points. For me anything that Wordpress can't do for me out of the box I go with Yii2 Framework. I haven't tried processwire and I am not sure if I will have time for it.
Re: Why I Dumped Wordpress As A CMS (my Experience) by Urine: 4:16pm On Apr 19, 2015
Interesting points. Why are you not willing to go with anything that looks like ZF2?
Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 5:07pm On Apr 19, 2015
Urine:
Interesting points. Why are you not willing to go with anything that looks like ZF2?

ZF2 is too damn complex, I created something in it I literally spent my whole time searching for answers, and Zend 2 is mighty slow , The names of the component na die its meant for Masochists.
Re: Why I Dumped Wordpress As A CMS (my Experience) by Urine: 8:57pm On Apr 19, 2015
pcguru1:


ZF2 is too damn complex, I created something in it I literally spent my whole time searching for answers, and Zend 2 is mighty slow , The names of the component na die its meant for Masochists.

ROFLMFAO!
Re: Why I Dumped Wordpress As A CMS (my Experience) by CRAZYMADMAN(m): 8:57pm On Apr 19, 2015
in zf2, you spend a lot of time writing unnecessary codes which defeats the essence of using a framework. But on the other hand, I love the extensions — especially the web service extensions that comes with it

1 Like 1 Share

Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 10:00pm On Apr 19, 2015
CRAZYMADMAN:
in zf2, you spend a lot of time writing unnecessary codes which defeats the essence of using a framework. But on the other hand, I love the extensions — especially the web service extensions that comes with it

Thank you my brother I saw an example of how to use session in zend framework 2 I wan shout.
Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 10:03pm On Apr 19, 2015
nollyj:
Nice write up. I get your points. For me anything that Wordpress can't do for me out of the box I go with Yii2 Framework. I haven't tried processwire and I am not sure if I will have time for it.

To tell you the truth my biggest regret was not learning Yii framework 2 when it was beta now I hardly have time. If there was ever a yii2 cms I would simply jump both that's the best framework as far as am concerned. Though there's one but not complete Easyiicms but only one author working on it.
Re: Why I Dumped Wordpress As A CMS (my Experience) by CRAZYMADMAN(m): 7:18am On Apr 20, 2015
there's another one — dotplant
Re: Why I Dumped Wordpress As A CMS (my Experience) by talk2hb1(m): 4:23pm On Apr 21, 2015
I learn not use WordPress for complex application in 2012 when I decided to build a Bulk SMS portal with, although it works fine but I spent 90% of my useful time working on the project. At the end of the day here is my conclusion about WordPress:
#) See WordPress as a plane that could fly and will take you for a smooth ride. with capability to fly within your country zone.
#) Joomla as a Beautiful Plane that could take you on a ride with enough effizy. This plane could take you from one continent to another without any hitch.
#) Drupal as a super Jumbo Multipurpose engine plane that allow you to add Swimming pool, Jacuzzi, Hotel, Football field, etc to it. The plane will not only take you on intercontinental flight but on inter Galactic flight.
In conclusion trying to build a Complex Project like online store with WordPress is like trying to kill an elephant with a kitchen Knife, while building a simple Blogging website with Drupal is like killing a Fly with Bazooka grin grin grin.
http://www.qlickas.com/2015/04/21/wordpress-versus-joomlah-versus-drupal/
Regards Habeeb Salami

9 Likes 2 Shares

Re: Why I Dumped Wordpress As A CMS (my Experience) by CRAZYMADMAN(m): 9:59pm On Apr 21, 2015
talk2hb1:
I learn not use WordPress for complex application in 2012 when I decided to build a Bulk SMS portal with, although it works fine but I spent 90% of my useful time working on the project. At the end of the day here is my conclusion about WordPress:
#) See WordPress as a plane that could fly and will take you for a smooth ride. with capability to fly within your country zone.
#) Joomla as a Beautiful Plane that could take you on a ride with enough effizy. This plane could take you from one continent to another without any hitch.
#) Drupal as a super Jumbo Multipurpose engine plane that allow you to add Swimming pool, Jacuzzi, Hotel, Football field, etc to it. The plane will not only take you on intercontinental flight but on inter Galactic flight.
In conclusion trying to build a Complex Project like online store with WordPress is like trying to kill an elephant with a kitchen Knife, while building a simple ;DBlogging website with Drupal is like killin Fly with Bazooka
http://www.qlickas.com/2015/04/21/wordpress-versus-joomlah-versus-drupal/
Regards Habeeb Salami

grin


Would like a similar analysis on PHP frameworks sha
Re: Why I Dumped Wordpress As A CMS (my Experience) by talk2hb1(m): 12:23am On Apr 22, 2015
CRAZYMADMAN:


grin


Would like a similar analysis on PHP frameworks sha
I am familiar with this two framework CodeIgniter and Laravel. undecided undecided undecided I don't know maybe I could come with any analysis of Framework
Re: Why I Dumped Wordpress As A CMS (my Experience) by Urine: 1:27pm On Apr 22, 2015
I love the way you lads have succeeded in painting ZF2 like a horror movie, truth is it is very hard but when you work in a ZF2 centric place, you have no other choice than to blend.
Re: Why I Dumped Wordpress As A CMS (my Experience) by CRAZYMADMAN(m): 2:27pm On Apr 22, 2015
Urine:
I love the way you lads have succeeded in painting ZF2 like a horror movie, truth is it is very hard but when you work in a ZF2 centric place, you have no other choice than to blend.

my emphasis is on the word unnecessary . @
Re: Why I Dumped Wordpress As A CMS (my Experience) by CRAZYMADMAN(m): 2:32pm On Apr 22, 2015
Urine:
I love the way you lads have succeeded in painting ZF2 like a horror movie, truth is it is very hard but when you work in a ZF2 centric place, you have no other choice than to blend.

my emphasis is on the word unnecessary . for example just compare the routing management in zf2 and Yii2. Me think that companies that make use of zf2 are rather more concerned with the name and possible prestige than productivity — I may be wrong though
Re: Why I Dumped Wordpress As A CMS (my Experience) by Urine: 4:08pm On Apr 22, 2015
CRAZYMADMAN:


my emphasis is on the word unnecessary . for example just compare the routing management in zf2 and Yii2. Me think that companies that make use of zf2 are rather more concerned with the name and possible prestige than productivity — I may be wrong though

I totally agree with you, I will also add security as one of the reasons companies feel tied to it.
Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 4:30pm On Apr 22, 2015
Regardless of all that. Wordpress is still the best CMS

1 Like

Re: Why I Dumped Wordpress As A CMS (my Experience) by Nobody: 4:52pm On Apr 22, 2015
25tegah:
Regardless of all that. Wordpress is still the best CMS

Yeah it's the best CMS not best CMF but best for users but terrible for developers.
Re: Why I Dumped Wordpress As A CMS (my Experience) by kudaisi(m): 5:23pm On Apr 22, 2015
pcguru1:


Yeah it's the best CMS not best CMF but best for users but terrible for developers.
I concur.
Re: Why I Dumped Wordpress As A CMS (my Experience) by larisoft: 11:17pm On Apr 22, 2015
You know your onions, bro
Re: Why I Dumped Wordpress As A CMS (my Experience) by onosprince(m): 4:38pm On Apr 24, 2015
,
Re: Why I Dumped Wordpress As A CMS (my Experience) by buzquet(m): 4:38pm On Apr 24, 2015
Pls am confused here ooo! But I thought Ajax is a football club?

6 Likes 2 Shares

Re: Why I Dumped Wordpress As A CMS (my Experience) by Lilshorecords(m): 4:40pm On Apr 24, 2015
.
Re: Why I Dumped Wordpress As A CMS (my Experience) by kelvyn7: 4:41pm On Apr 24, 2015
buzquet:
Pls am confused here ooo! But I thought Ajax is a football club?


grin grin grin

no b only football club bro grin

Na also computer programming language o
Re: Why I Dumped Wordpress As A CMS (my Experience) by intergral(m): 4:41pm On Apr 24, 2015
Ok we don hear, then?

1 Like

(1) (2) (3) (4) (Reply)

Coding Looks Cool. / Programming Competition: Search Engine Task. Rewards up for grabs. / Is Python Really Worth The Buzz And Hype It's Getting ?

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 66
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.