Elegant is a (with permission) fork of an in-development WordPress theme.
- Port enough
.twigfiles fromborder-beagle/to 'load' the site. - Create a temporary
gulpfile.jssetup, so there is minimal theming. - Generate and update example code for custom post types and custom taxonomies.
- Turn off
Texas-Sanstemporarily. - Add needed
todoitems throughout the PHP-side codebase. - Add a Screenshot here, once initial site is built.
- Convert back to Gutenberg and disable Classic Editor.
- Delete current
gulpfile.jsand rebuild for ESNext standards. - Update
main.jsto comply with ESNext standards. - Update
helpers.phpwith function(s) for updating/altering metaboxes (For helper instructions). - Delete or use contents of
/Unused-Codedirectory. - Complete
Core\Events::classbuild with required fields. - For
Core\Events: Alter the 'Tags' metabox with instructions pulled from 'EVENT TAGS' field. - Add
Locationsubfields to theLocationstaxonomy (eg: address, street, etc.) - Generate
Block\Profiles::classfile. - Generate
Core\Events::classfile (if needed). - Generate
Core\Profiles::classfile (if needed). - Integrate
texas-news/'External Posts' formatting, but as part of the defaultpost.
Removed these items because they are unnecessary.
GenerateCore\ExternalPosts::classfile (if needed).GenerateBlock\ExternalPosts::classfile.
Tempoarily shut it down until the root-cause can be addressed.
As its a front-end only piece of tooling, I just flat replaced it with Open Sans.
- It was renamed to
1883-Sans, which means the files need replacement (try importing fromtexas-connect/from UC). - Chrome and FireFox are now refusing to load it, referecing the error noted here: https://support.mozilla.org/nl/questions/913498
The University of Texas at Austin's College of Education needs a full-featured CMS which is flexible and future-ready, while not requiring high level of knowledge for long-term maintenance and updates.
Though Drupal does these things, the tools available to WordPress for quick flexibility, rapid ACF creation (CCK, for Drupalists), and leveraging WPML for multilingual make WordPress a more ideal choice. Add in the ability to use WordPress Site Network feature on Pantheon and the various departments within the College of Education can reach a much smoother mainteance window. (e.g.: Maintaining multiple sites, yes, but only one Pantheon instance, one codebase, and one maintenance window.)
Much of the code inspiration for this theme was drawn from three sources:
- Flynt - https://github.com/flyntwp/flynt
- LeagleCup - https://github.com/19h47/leaglecup
- Border Beagle - https://github.austin.utexas.edu/pres-ucomm/border-beagle
Elegant Education is a future-forward WordPress theme built with PHP 7.x in mind. (PHP 8.x would be nice, but Pantheon does not currently support it.)
With that in mind, Elegant Education PHP linting is accomplished via a combination of both PSR-12: Extended Coding Style and WordPress' PHP Coding Standards.
Custom plugins, if required, will be completed using WordPress' Coding Standards (Extra), but the theme-engine itself will attempt to use industry standard Best Practices, as opposed to WordPress' outdated standards when possible.
The current 'Timber' engine used for TWIG Templating and WordPress theme-engine requires code to be formated in certain manners which are non-standard.
Functional, but against PSR12 Standard:
functions.php:11: --> Elegant\Init::run_services();
inc/Init.php:25: --> Setup\Theme::class
Correct Usage for PSR12:
functions.php:11: --> use function Elegant\Init\run_services;
inc/Init.php:25: --> use Setup\Theme\class
composer Installnpm install@todo: Setup build configuration, once ready.
@todo Clean up instructions and references for future coders. @todo Compare leaglecup with Flynt for naming conventions. Flynt is more standardized, and the documentation easier to reference. That said, leaglecup appears to have been the better codebase.
- Custom Post Types are declared within the
inc/Corefolder. - If ACF-based Gutenberg blocks are needed to display content, they are generated within the
inc/Blockfolder.