I have experience creating websites using pure HTML, CSS, and JavaScript, using Flask, and using Angular. I want to make a simple website for my dad’s company as a hobby project. I managed to set up a WordPress environment, and I’ve been trying to edit the website in WordPress for a bit. However, I am getting very frustrated because I feel like I have no freedom, and I struggle to do even the most simple tasks that I could do in HTML/CSS easily.
I can’t just do things easily like set the size of blocks, put blocks where I want on the page, change attributes of a block without changing it for all blocks of the same type, or make groups of text on certain pages different fonts, colors, sizes.
I see that you can add your own CSS classes to each block, but I have to click on “Advanced”, type in the class, then click twice on “Styles”, “Additional CSS”, then type it into a plain textbox with no formatting or autocomplete. From this, it feels like it’s not intended that I use “additional CSS” often.
I just want to know, from the experienced WordPress developers who know HTML/CSS, is it supposed to feel so limited like this? Should I keep on playing with WordPress to gain more experience or is my solution here just “Go back to plain HTML/CSS then”? Are there some plugins that help with making development easier?
[ad_2]
> However, I am getting very frustrated because I feel like I have no freedom, and I struggle to do even the most simple tasks that I could do in HTML/CSS easily.
WordPress exists to choose a specific, opinionated standard primarily to help _businesses_. Tech people aren’t its primary audience – we can build our own stuff.
It’s intentional that other tech has more freedoms, and beneficial that WordPress doesn’t.
What you’re lacking is experience in how to get things done in WP, but you also need to change your mindset – you won’t get WP to be python.
> I can’t just do things easily like set the size of blocks, put blocks where I want on the page, change attributes of a block without changing it for all blocks of the same type, or make groups of text on certain pages different fonts, colors, sizes.
This is intentional. You develop a theme/standard, usually based on a company’s style guide, so the users of the platform can’t easily mess things up.
Try Elementor or other page builders like Bricks or Divi. They give you freedom and control over that.
I use only the Hello theme (minimal code included) and Elementor with ACF, you can do anything.
Have you worked with a CMS before? As a blogging platform that evolved into a CMS, WordPress provides a structure and features to make it easier to add and maintain web content. Different themes and page builders give developers a starting point to design a site to hand over to content managers.
I think part of your frustration may come from trying to learn how to work within this framework. When you create your own site from scratch, you control everything.
I’ve been maintaining a college website in WordPress for a couple of years, and it took some adjusting. The page builders (first Divi, now Beaver Builder) can be quirky and a bit bloated, but I’ve learned to work with them.
Give Bricks a try. You should find it quite intuitive, as the elements’ properties generally follow CSS terminology. Out if the box, much more is possible with Bricks than with Gutenberg. And it has great support for dynamic data, custom php/js/css code.
It’s only as limited as you are. WordPress is extremely versatile, fitting a large number of use cases. Learn PHP. Learn FSE and native blocks. Learn the “traditional” approach to building templates with ACF, as well as how to build ACF blocks.
Livecanvas may be up your alley since you can edit the html and css directly.
If you already know CSS, you could start with a tutorial like this one to build your own theme:
[https://www.hostinger.com/tutorials/create-wordpress-theme-html5](https://www.hostinger.com/tutorials/create-wordpress-theme-html5)
I used to feel the same way. Then I started making child themes. Then Instarted to feel it again. Then I started making my own templates. Then I started really liking WordPress. Then I started making my own themes. Then I started to love WordPress. Now I’ve started using a Headless WordPress. Now I love WordPress.
Google those terms and you won’t feel limited anymore.
Try GeneratePress, Kadence or Blocksy theme; add GenerateBlocks or/and Spectra plugin.
Almost page builder expereince.
http://developer.wordpress.org for theming, patterns and templates development
Do you know php? I work with acf (flexible layouts, not blocks, I do not like the block editor, it is great, but I prefer a more plain way of working and don’t the like wysiwyg way of adding content tbh – but ACF plays very nicely with blocks too, and the coding side of things is comfortable for that)
I am able to create quite complex websites like that (html, js, scss)… Underscore is my go to starter theme. But you can use any theme as a starter, just create a child theme and overwrite the template files you don’t like.
But the beauty is, WP caters to everyone. And many people just want a basic website, change some colors, change the logo, and have adding content be very easy.
You could also look into the REST API and really only use the backend to add content and then use the data elsewhere. Especially for static websites that do not need to be updated all the times that can be great (and there a ways to check for new content and stay fairly up to date too)
Set up a child theme and you can add all your own CSS there.
If you’re not doing any development, it should. If you are, then you haven’t unlocked all the flexibility yet.
Create a child theme, start adding page templates. If you want to create re-usable modules should show look into ACF. [link](https://www.advancedcustomfields.com/resources/building-layouts-with-the-flexible-content-field-in-a-theme/) / [link](https://www.linkedin.com/pulse/acf-flexible-content-fields-complete-guide-2024-kunal-chauhan–wdeyf/)
If you want a powerful drag/drop experience, consider Divi.
WordPress is a CMS. Matt’s stupid idea to try to make WordPress a page builder like Wix or Squarespace has resulted in a monstrosity which struggles to do the duties of a CMS and is an awful creative website builder.
WordPress is very useful for publishing lots of content systematically, if you can find programmers to beat the page builder out of contemporary WordPress.
Basics like SMTP settings, basics of SEO, basics of forms are not built into WordPress so every jackass in a low-income country has now created paid versions of all these plugins. The nightmare started with Yoast SEO which turned both your private admin area in your website and the plugin directory at WordPress into a banner and spamfest. You’ll spend more time trying to get the basics to work and to dodge paid registration of all these scrubby plugins.
Again, Matt through WooCommerce introduced the idea that one does not buy a plugin but pays an annual subscription. Worse, the new tendency is the cost for year two is the same as the initial cost. Some developers have the effrontery to offer discounts to new users with higher prices
One plugin for which we paid $500 with $200 annual renewals, is now $400 to new users but $700 to renew – every damn year. We are proud to use unlicensed versions going forward. This is not a one-off case. WordPress has become the proverbial used-car lot. Watch your wallet, don’t listen to the sales talk. It’s not the developer-friendly, cooperative for which we signed up many moons ago.
Frankly there should be something better. I wouldn’t use WordPress now except for work. **Build on your own domain** of course but leverage a service which works exactly the way you like (and save yourself the admin headache). Or build your own web app if that’s what you want.
Suggest looking at [https://www.youtube.com/@jamiewp](https://www.youtube.com/@jamiewp) youtube channel. Getting back into WP after years and am very impressed with the capabilities out of the box.
> I can’t just do things easily like set the size of blocks, put blocks where I want on the page, change attributes of a block without changing it for all blocks of the same type, or make groups of text on certain pages different fonts, colors, sizes.
Yeah, that’s been insanely frustrating. The “new” Gutenberg block editor has been around since 2019 and it *still* doesn’t have basic formatting capabilities other page editors have had as far back as 2010.
It’s the reason why the egregious Elementor page builder is the most popular plugin in the free WordPress directory.
Say what you will about Elementor’s sluggish performance, oversized DOMs, blase attitude towards security, and casual disregard for breaking updates, they *have a usable interface.* (Note: there are other, much better page builders than Elementor that also have complete interfaces for their layout and formatting controls.)
I get what you’re trying to do by adding custom CSS to every block. It sounds like you’ve got a design idea for how you want your site to look, and so on paper it makes sense to rough things out with blocks, use the minimal formatting options backed the block controls, and then apply custom CSS to each block to spank things into shape.
That trick, unfortunately, doesn’t work. Even the WordPress.org homepage took a month to build and required extensive customization, block overrides, and development of at least one custom block. That’s why you see so many other commenters here recommending everything from learning PHP to downloading Elementor.
Most people simply find a theme that looks approximately like what they want, install it, and then use a theme and its companion set of blocks to flesh it out. Try that first. Don’t bother futzing around with block-level custom CSS.
Oh yeah, and choose a “classic” theme. You can use Customizer in the admin bar and add your global custom CSS live, in real time, as opposed to tunnelling down to customize CSS for individual blocks. If you think using an IDE is fun you can try using a “Full Site Editing” block theme and add global custom CSS in a stylesheet or (the “official” way) use JSON syntax to add them to the theme’s theme.json file. (Hint: use a Classic theme.)
Or just grab a (non-Elementor) page builder and design your dad’s site more the way you would with Figma or Canva.
Start using Bricks and enjoy the beauty of the CSS class based development inside WordPress, among 100 other magnificent things Bricks offers.
If you know PHP, then you can try your hand at building original themes. If not, then have a look at this Page Building 101 course to get some ideas: https://www.youtube.com/watch?v=-huJ-SbO3BI&list=PLBpy-YllkBawiMQNVh8ZBXIz8QW_vUjiV
If you know what you are doing, you can do anything you want with wp.
Use Oxygen builder
Look into Roots Sage and their whole ecosystem. If you’re a developer you’ll like their developer focus to building a WordPress theme.
The interesting thing about WordPress, and most frustrating, is that the limitations have resulted in wildly different ways of creating design and content.
For the super duper power user route that wants maximum control, you want to learn about FSE, Gutenberg/blocks and custom themes with child themes. Go create your own themes and blocks from scratch.
For the user that knows enough to be dangerous but doesn’t like FSE or using blocks, highly recommend Bricks Builder. Basically turns WordPress into Webflow/a singular visual builder with lots of css/php control. It’s actually a THEME and not a plugin, so you don’t need to install anything else. Also has form building built in. Handy.
And for the user that doesn’t want to learn css or html or fiddle with any code at all and just wants a pretty site, WPStackable blocks with Blocksy as the theme. You edit the header, footer, and basic settings in the Customizer then use Wpstackable to design all the inner content visually. Even comes with a nice template library. The pro version is worth it and the team is super helpful.
By no means do you want to use Elementor, WPBakery or even Divi right now (Divi is undergoing complete rewrite and will be awesome but for now avoid it).
So there’s your lot. Pick your poison and have fun.
You don’t need to use blocks. You can always just use the classic editor, advanced custom fields, and PHP tags that populate the content in your code. I usually prefer this.
Learn PHP. Do custom theme, you’ll get that flexibility. Another option is to use builder like elementor or divi.
What you are seeing now is just the tip of WordPress or the defaults, but as soon as you fully understand how it works, its a good platform for a simple website or the complicated ones like e-commerce sites.
Might I suggest you don’t bother using the Gutenberg editor and instead look in to headless and bootstrap if you want a more hands on coding experience.
Middle ground would be something like GeneratePress and GenerateBlocks.
Also, functions.php and style.css files of a child theme provide a great opportunity to add your own code with filters, hooks and functions.
Yes it is supposed to be that limited. WordPress is a CONTENT management system. Not a design management system. Typically you would pick a prebuilt theme, change some basic settings, and you’re done. The block editor is new and does allow for some extra flexibility but not completely. It’s meant for non-coders who don’t want to fiddle with such things, they just want to put a site up and start posting blogs.
Try thinking of WordPress as a web application, because that’s what it is. Anyone learning to make web apps with dynamic content has surely thought “wow I could put a user friendly dashboard on this and have a website editor that anyone could use”. Well that’s what CMS are, and WordPress is just that. It’s a web application that uses PHP for its dynamic content. I suggest building a theme from scratch to learn about posts and making your own custom posts. You can make whatever you want with PHP template files using PHP, html, and JavaScript. It’s much simpler than it seems. Using WordPress itself, prebuilt themes, and page builders will make the CMS feel limited and over complicated, when really a full custom page is just a couple of PHP files away.
The true horror of WordPress is not that it’s limited, it’s that you have to look at mixed PHP/HTML which is absolute cancer.
You’re doing it wrong. I would recommend looking into WordPress theme development and get a better grasp of what it is first
You’re complaining about WordPress being more complex than just hard coding pages in HTML and CSS, but it’s a content management system. In addition to letting people with no technical skills use a commercial theme and put together their own site, you can develop bespoke themes.
The idea is the end user doesn’t set CSS properties or build hard coded menus and so on… you build components and plug them in to the theme. That means for users they can simply drag blocks onto the page, use the menu builder to put together a menu and attach it to a location… naturally that’s more work out of the box for a developer but it’s exactly how it’s meant to work.
For a small hobbyist site or a couple of pages it could well be overkill if you’d rather just bake everything into the page but using a CMS means others with no technical expertise can manage the site. It depends on whether you want to commit to learning WP. Of course you’ll also need PHP and JavaScriot for the new Gutenberg block system and interacting with the WordPress API and functions to pull content from the database.
I just want to let you know you’re not alone. Thanks for asking this because I am having the same issue! It’s so frustrating !!
if you know programming give https://livecanvas.com a try. Lightweight pages and you have total control of the code. Plus ACF (advanved custom fields) will give you everything you need.
> I have experience creating websites using pure HTML, CSS, and JavaScript, using Flask, and using Angular.
> I don’t need any kind of database since it’s a static website though.
WordPress is overkill for your needs. It’s a CMS with your choice of elaborate front-ends. There’s nothing wrong with building sites just to learn WordPress, but for your current use case you’ll have an easier time sticking with what you know.
YOU LITERALLY DO HTML/CSS IN WORDPRESS JUST LIKE ANY OTHER SITE.
It sounds like you’re just using a page builder or a preset theme. The beauty in WordPress is you literally code it in html/css like you would another site, but WP provides you a pre-built admin page for the CLIENT. You code it out, and thr client can go in and change the text, pictures, etc. Building an admin panel for every clients takes a much longer time. WP and some plug-ins like ACF also provide built in functions that supercharge backend development. So, you have to know some PHP but you don’t have to build the backend from complete scratch each time. It’s still code, but you’re able to spit out websites much faster.
Or start with a good page builder + use your html css knowledge and you’ll be good