Instead of editing an if statement (which could get ugly quickly), just edit configuration arrays of conditional tags and page template checks.
123 lines
5.0 KiB
Markdown
123 lines
5.0 KiB
Markdown
[Roots Theme homepage](http://www.rootstheme.com/) | [Documentation
|
|
table of contents](README.md)
|
|
|
|
# Theme library
|
|
|
|
### activation.php
|
|
|
|
This file handles the theme activation. [About the theme activation](activation.md).
|
|
|
|
### cleanup.php
|
|
|
|
This file handles the various WordPress clean up. [About the clean up](cleanup.md).
|
|
|
|
### config.php
|
|
|
|
This file is used to enable various theme features, define which pages get the sidebar, set the CSS classes for `#main` and `#sidebar`, set a Google Analytics ID, and set the post excerpt length.
|
|
|
|
#### Enable theme features
|
|
|
|
`add_theme_support()` is used to enable/disable:
|
|
|
|
1. Root relative URLs
|
|
2. [Rewrites](rewrites.md)
|
|
3. HTML5 Boilerplate's `.htaccess`
|
|
4. Bootstrap's top navbar
|
|
|
|
If you don't want to use one of the features, either comment out the line or remove it.
|
|
|
|
#### Define which pages shouldn't have the sidebar
|
|
|
|
`roots_sidebar()` is used to define which pages shouldn't get the sidebar. By default, the 404 and `page-custom.php` template are full width. If you would like to remove the sidebar from additional pages, add in a proper conditional to the first `if` statement.
|
|
|
|
If you had a page named Contact, you would update the statement to look like:
|
|
|
|
if (is_404() || is_page_template('page-custom.php') || is_page('contact')) {
|
|
|
|
|
|
### h5bp-htaccess
|
|
|
|
This file contains HTML5 Boilerplate's `.htaccess` which is automatically added by `htaccess.php` if enabled in `config.php`. There are a few changes to the H5BP version:
|
|
|
|
* Added block to access WordPress files that reveal version information (`wp-config.php`, `readme.html`, `license.txt`)
|
|
* Commented out expires headers (we recommend the use of [W3 Total Cache](http://wordpress.org/extend/plugins/w3-total-cache/))
|
|
* Commented out ETag removal (we recommend the use of [W3 Total Cache](http://wordpress.org/extend/plugins/w3-total-cache/))
|
|
* Commented out start rewrite engine (handled by WordPress)
|
|
* Commented out suppress/force www (handled by WordPress)
|
|
* Commented out `Options -MultiViews` (causes a server 500 error on most shared hosts)
|
|
* Commented out custom 404 page (handled by WordPress)
|
|
|
|
### htaccess.php
|
|
|
|
This file handles the clean URL rewrites and HTML5 Boilerplate `.htaccess`. [About the rewrites](rewrites.md).
|
|
|
|
### init.php
|
|
|
|
This file runs the initial theme setup and defines helper constants for later use
|
|
|
|
### metaboxes.php
|
|
|
|
This file is a placeholder for you to put in custom metaboxes. We recommend the use of [Custom Metaboxes and Fields for WordPress](https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress).
|
|
|
|
### post-types.php
|
|
|
|
This file is a placeholder for you to put in [custom post types](http://codex.wordpress.org/Function_Reference/register_post_type) and [taxonomies](http://codex.wordpress.org/Function_Reference/register_taxonomy).
|
|
|
|
### scripts.php
|
|
|
|
This file handles all of the CSS and JavaScript.
|
|
|
|
### sidebar.php
|
|
|
|
Class which provides a simple configuration interface to define what pages you want to show the sidebar on.
|
|
|
|
#### Stylesheets
|
|
|
|
Stylesheets are enqueued in the following order:
|
|
|
|
1. `/theme/assets/css/bootstrap.css`
|
|
2. `/theme/assets/css/bootstrap-responsive.css`
|
|
3. `/theme/assets/css/app.css`
|
|
4. `/child-theme/style.css` (if a child theme is activated)
|
|
|
|
`app.css` should be used for your site specific styling.
|
|
|
|
If you're using LESS, make sure you compile the files to the proper locations:
|
|
|
|
1. `css/less/bootstrap.less` -> `css/bootstrap.css`
|
|
2. `css/less/responsive.less` -> `css/bootstrap-responsive.css`
|
|
|
|
#### JavaScript
|
|
|
|
JavaScript is loaded in the following order:
|
|
|
|
1. `/theme/assets/js/vendor/modernizr-2.6.1.min.js` (in `head.php`)
|
|
2. `jquery-1.8.2.min.js` via Google CDN with local fallback (in `head.php`)
|
|
3. `/theme/assets/js/plugins.js`
|
|
4. `/theme/assets/js/main.js`
|
|
|
|
jQuery is loaded in `head.php` using the same method from HTML5 Boilerplate: grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline. It's kept in the header instead of footer to avoid conflicts with plugins.
|
|
|
|
`plugins.js` contains a minified version of all the latest Bootstrap plugins.
|
|
|
|
Learn about `plugins.js` and `main.js` in the HTML5 Boilerplate [JavaScript docs](https://github.com/h5bp/html5-boilerplate/blob/master/doc/js.md).
|
|
|
|
##### jQuery in the footer
|
|
|
|
It's safe to move jQuery to the footer if you're able to avoid problems with certain plugins that improperly use jQuery. Copy the necessary lines from `head.php` to `footer.php` right before `wp_footer()`, then update the `wp_register_script()` calls `scripts.php` to have scripts in the footer by setting the last argument to `true`.
|
|
|
|
### utils.php
|
|
|
|
This file contains utility functions used by other files in the theme.
|
|
|
|
The theme wrapper is used to serve all of the template files. [About the theme wrapper](wrapper.md).
|
|
|
|
### widgets.php
|
|
|
|
This file registers the custom sidebars and custom widgets. There are two initial sidebars:
|
|
|
|
1. Primary Sidebar (used by `templates/sidebar.php`, included from `base.php` within `#sidebar`)
|
|
2. Footer (used by `templates/footer.php`)
|
|
|
|
The included vCard widget can be used to build additional, custom widgets.
|