I don't have much experience with Wordpress specifically, but some of the terms used for the concept you're talking about are "decoupling" and "modularization".
The idea is to have each of your parts, or modules, be more or less unaware of what your other modules are doing.
Part of this is why there are object-oriented languages like Java, C++, etc. They allow for encapsulation and modularity. Another example is the many MV* frameworks, like AngularJS, which try to give you a push towards decoupling the different aspects of your program (in this case, your web app). However, it is 100% possible to write outside those bounds; it is up to you to make sure you modularize things correctly. PHP is a good example of this; parts of it are procedural, or function-based, and parts of it support a class-based system. It depends on how you use it.
As far as decoupling front-end and back-end, and example of this might be how you go about sending data back and forth. Say you use an AJAX request when users attempt to log-in to your site. The server might return the response of 200 (success) if the user exists and the credentials are correct, or 401 otherwise. In this case, you are returning a generic response, rather than a string, like "User does not exist", which in some circumstances directly ties the server and the client together.
Same reason why many discourage the use of inline JavaScript in your elements. If you don't use inline JavaScript, you can usually just change your code in one place.
As far as applying this to a blog, you might think of it in terms of Model View Controller.
You store your blog posts, tags, comments, etc., in a database like MySQL or MongoDB. This is your Model. The data is only stored in one place.
Your templates might be your Views. Generic PHP/HTML mark-up that displays your data (extracted from your database).
Your front-end JavaScript might be your Controller, which manipulates the Views and allows the user to interact with your web application.
Each of these parts, then, only has one primary function, which helps decouple them. This allows you to, say, change your View (your HTML mark-up) without necessarily having to change 500 lines of JavaScript or having to change the structure of your database.
Joomla, and I guess it is likeCodeigniteras they are bothCMS.Joomlaalso has the so called MVC dev structure. However, while digging into it, I found the learning curve ofJoomlaseems a little bit high for beginners like me, then I realised that I need to know how some things work before using them with existing frameworks. - ChenerJoomla, which let me ignoredCodeigniter. To be specific:Wordpress->Joomla->Drupal->Magento->hell I wasted so much time doing nothing! Then I decided to code from scratch: HTML, CSS, PHP, MySQL -> Javascript, HTTP -> jQuery, bootstrap ... Perhaps its time to tryCodeigniter. - Chener