Wonderflux is distributed under the GPL v2 license and just like WordPress is free to download, use and modify. YES, you can use Wonderflux on as many commercial, non-commercial and personal WordPress websites as you wish without any a fee, subscription or credit required (but it would be appreciated!)
Anyone is welcome to suggest ideas or code on GitHub, the goal is to develop a fantastic professional theme framework for everyone to use, for free, to make amazing WordPress sites!
The Wonderflux documentation site is a (slowly!) growing reference of all the functions, hooks and filters you can use in your child themes. Apologies, coding is much more fun than writing documentation, but there is fairly complete in-line code documentation in the wf-includes directory files for your reference if you dig around.
Wonderflux is a theme framework (sometimes called a parent theme) that you use by building your own child themes. You simply have both Wonderflux and your child theme uploaded to your normal WordPress theme directory.
By activating your child theme in the WordPress admin area just like a normal theme, it will automatically use files and functionality from Wonderflux, giving you a powerful toolkit and dynamic CSS layout grid to rapidly develop bespoke WordPress themes for any purpose.
Child themes can be as simple as a single style.css file, or include any number of files that override or add functionality to Wonderflux or your website. A simple rule to remember is that if a core Wonderflux theme layout file exists in your child theme directory (eg header-content.php) it will be used instead of the core Wonderflux file. Read more about this in the Template parts section below.
Only advanced developers will need to actually override other standard Wonderflux template files in their Wonderflux child theme, for example header.php or footer.php
IF YOU OVERRIDE THESE YOU SHOULD DUPLICATE THE CORE FILE FROM WONDERFLUX INTO YOUR CHILD THEME DIRECTORY, this will ensure you retain the Wonderflux structure and hook system to give you the perfect starter file to begin playing with!
The quickest way to begin learning how to use Wonderflux is to download the WFX Girder demonstration child theme and examine the file structure and code. There are lots of comments in the file to get you started.
These important files contain very simple content and layout. Separating the surrounding layout logic and code from the actual content makes the files simpler to edit. They can be thought of as re-useable parts that help avoid repetition of code.
An example is loop-content.php – used to display the main content of your site. Instead of repeating common CSS classes and layout just edit this one file, or see below on optionally extending with location awareness for more complex configurations.
If you have not worked with theme frameworks, parent themes or get_template_part() before – welcome to the future of WordPress theme development… and this barely scratches the surface of what Wonderflux can do for you!
Any file that has ‘-content’ in the name is a template part:
- loop-content.php (used to display main content)
Wonderflux extends the principle of template parts by adding location awareness. This automatically adds the ability to use files such as header-content-category.php which will override header-content.php when viewing a category archive.
Location awareness works automatically – if the file exists it gets used, otherwise it falls back to using the default file (the last listed). You will see the files shown below in the order, or cascade of files that will be used in given locations. We are using template part loop-content.php as an example template part, but this will work with any main template part, or indeed your own files if you use the wfx_get_template_part() function:
- SINGLE POST (INCLUDING CUSTOM POST TYPES) NOTE: Normal ‘post’ post type uses loop-content-single.php NOT loop-content-single-post.php
- CATEGORY ARCHIVE
- TAXONOMY ARCHIVE
- TAG ARCHIVE
- DATE ARCHIVE NOTE: 4 digit year, 2 digit month with leading zero if less than 10
- 404 ERROR PAGE
Wonderflux generates a complete CSS grid layout system based on Blueprint CSS, the difference is you can configure the number and width of columns, site container width and more by going to the Wonderflux options page.
The core CSS layout is generated by the following values:
- Site container width unit (default size)
- Number of columns
- Site container position
- Main content width
- Sidebar 1 width
- Sidebar 1 position
The entire grid configuration and all wrapper output can be filtered and removed if required – remember this is a framework! Oh and if you spot somewhere that needs a filter or more flexibility, just let me know on the GitHub issues page.
You should not modify the Wonderflux theme framework to avoid issues with updates in the future. One of the main advantages of using a theme framework is the ability to update the core framework to quickly and easily support future versions of WordPress and improve performance and functionality.
There are lots of ways to use Wondeflux from your child theme:
- Filter the layout values to change the layout configuration at any time (including underlying CSS grid system).
- Create a main template file with the same name in your child theme – this will be used instead of the core Wonderflux file.
- Create a function with the same name as a core Wonderflux display function in your child theme – this will be used instead of the core Wonderflux function.
- Remove a core Wonderflux action in your child theme functions.php file.
- Add a filter to change or add to the code Wonderflux outputs.
- Use over 100 location-aware hooks to detect what type of content is being viewed and automatically add unique content.
If you still feel the need to hack the Wonderflux core code, why not get involved with the project on GitHub, all feedback and contributions are welcome! Visit the GitHub Wonderflux project page.