mirror of
https://github.com/10h30/trestle.git
synced 2026-07-11 18:56:07 +09:00
Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ec25a1c8d | |||
| ea717c00ff | |||
| 7ffeb0c85f | |||
| 9d30ddbed5 | |||
| 94f2276f7e | |||
| 7e994c85e8 | |||
| 86e64b007c | |||
| 00be1d2046 | |||
| f24364e114 | |||
| 65d0ea44a6 | |||
| d6115d0fae | |||
| 880e8c6f50 | |||
| dfe92cbbf3 | |||
| 2b989d7424 | |||
| 8a6adb7400 | |||
| 7e666d0bb9 | |||
| 1bb6537455 | |||
| c7055b91ac | |||
| 67996d4e70 | |||
| 7d1b5573a1 | |||
| 3dae9f0443 | |||
| c8667ce065 | |||
| 335594dbd2 | |||
| d77a0a7440 | |||
| 1b8e9a7e43 | |||
| 39a1e729dd | |||
| 051fdfb0d1 | |||
| 6d34078f94 | |||
| f8bd7fc700 | |||
| 0b06acc857 | |||
| 6abe714a1e | |||
| eac35762fe | |||
| b0506281e8 | |||
| eae7e220d9 | |||
| 1ebd6ff5df |
@@ -1,5 +1,5 @@
|
|||||||
Trestle
|
Trestle
|
||||||
=======
|
---------------------
|
||||||
|
|
||||||
### A handy boilerplate child theme for serious Genesis developers.
|
### A handy boilerplate child theme for serious Genesis developers.
|
||||||
[](https://gitter.im/MickeyKay/trestle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[](https://gitter.im/MickeyKay/trestle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
@@ -25,22 +25,5 @@ Here are some of Trestle's many features, check out the [Trestle Demo](http://de
|
|||||||
* And more!
|
* And more!
|
||||||
|
|
||||||
#### Settings & Usage
|
#### Settings & Usage
|
||||||
* The Trestle control panel is located at **Genesis → Theme Settings**, in the **Trestle** metabox.
|
* All Trestle settings can be accessed via the **Customizer**.
|
||||||
* Examples and usage can all be viewed on the [Trestle Demo](http://demo.mightyminnow.com/theme/trestle/)
|
* Examples and usage can all be viewed on the [Trestle Demo](http://demo.mightyminnow.com/theme/trestle/)
|
||||||
|
|
||||||
#### To Do
|
|
||||||
* Add ability to click off of mobile menu/search to hide menu/search.
|
|
||||||
* Rework menu CSS for simplicity (general / primary / secondary / header)
|
|
||||||
* Convert non-theme functionality to separate Genesis-dependant plugin
|
|
||||||
* Add in Grunt support for:
|
|
||||||
* Sass
|
|
||||||
* Auto-ordering of CSS (CSSComb)
|
|
||||||
* Translation
|
|
||||||
* Check other themes for other ideas. . .
|
|
||||||
* Switch to customizer for theme options instead of Genesis panel (pros? cons?)
|
|
||||||
* Remove custom background CSS that doesn't make sense (different max-widths, etc)
|
|
||||||
* Weird extra icons on accordions on demo site.
|
|
||||||
* Add checkbox to control author box (along with post info/meta) output (see ES: esw-custom.php)
|
|
||||||
* Mobile menu button setting - either:
|
|
||||||
* Remove (currently controlled from JS), or
|
|
||||||
* Pass icon/text as params to jQuery
|
|
||||||
+19
-24
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Theme functionality
|
* Theme functionality.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*
|
*
|
||||||
@@ -12,31 +12,31 @@
|
|||||||
* Required Files
|
* Required Files
|
||||||
===========================================*/
|
===========================================*/
|
||||||
|
|
||||||
// Theme functions
|
// Theme functions.
|
||||||
require_once dirname( __FILE__ ) . '/includes/functions/theme-functions.php';
|
require_once dirname( __FILE__ ) . '/includes/functions/theme-functions.php';
|
||||||
|
|
||||||
// Admin functionality
|
// Admin functionality.
|
||||||
require_once dirname( __FILE__ ) . '/includes/admin/admin.php';
|
require_once dirname( __FILE__ ) . '/includes/admin/admin.php';
|
||||||
|
|
||||||
// Customizer controls
|
// Customizer controls.
|
||||||
require_once dirname( __FILE__ ) . '/includes/admin/customizer.php';
|
require_once dirname( __FILE__ ) . '/includes/admin/customizer.php';
|
||||||
|
|
||||||
// Shortcodes
|
// Shortcodes.
|
||||||
require_once dirname( __FILE__ ) . '/includes/shortcodes/shortcodes.php';
|
require_once dirname( __FILE__ ) . '/includes/shortcodes/shortcodes.php';
|
||||||
|
|
||||||
// Additional sidebars
|
// Additional sidebars.
|
||||||
require_once dirname( __FILE__ ) . '/includes/widget-areas/widget-areas.php';
|
require_once dirname( __FILE__ ) . '/includes/widget-areas/widget-areas.php';
|
||||||
|
|
||||||
// Plugin activation class
|
// Plugin activation class.
|
||||||
require_once dirname( __FILE__ ) . '/includes/classes/class-tgm-plugin-activation.php';
|
require_once dirname( __FILE__ ) . '/includes/classes/class-tgm-plugin-activation.php';
|
||||||
|
|
||||||
// Better Font Awesome Library
|
// Better Font Awesome Library.
|
||||||
require_once dirname( __FILE__ ) . '/lib/better-font-awesome-library/better-font-awesome-library.php';
|
require_once dirname( __FILE__ ) . '/lib/better-font-awesome-library/better-font-awesome-library.php';
|
||||||
|
|
||||||
|
|
||||||
add_action( 'genesis_setup' ,'trestle_theme_setup', 15 );
|
add_action( 'genesis_setup', 'trestle_theme_setup', 15 );
|
||||||
/**
|
/**
|
||||||
* Initialize Trestle
|
* Initialize Trestle.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
@@ -46,21 +46,16 @@ function trestle_theme_setup() {
|
|||||||
* Theme Setup
|
* Theme Setup
|
||||||
===========================================*/
|
===========================================*/
|
||||||
|
|
||||||
// Child theme definitions (do not remove)
|
// Child theme definitions (do not remove).
|
||||||
define( 'CHILD_THEME_NAME', 'Trestle' );
|
define( 'TRESTLE_THEME_NAME', 'Trestle' );
|
||||||
define( 'CHILD_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' );
|
define( 'TRESTLE_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' );
|
||||||
define( 'CHILD_THEME_VERSION', '1.2.0' );
|
define( 'TRESTLE_THEME_VERSION', '2.0.1' );
|
||||||
|
define( 'TRESTLE_SETTINGS_FIELD', 'trestle-settings' );
|
||||||
|
|
||||||
// Load theme text domain
|
// Setup default theme settings.
|
||||||
|
trestle_settings_defaults();
|
||||||
|
|
||||||
|
// Load theme text domain.
|
||||||
load_theme_textdomain( 'trestle', get_stylesheet_directory() . '/languages' );
|
load_theme_textdomain( 'trestle', get_stylesheet_directory() . '/languages' );
|
||||||
|
|
||||||
// Add HTML5 markup structure
|
|
||||||
add_theme_support( 'html5' );
|
|
||||||
|
|
||||||
// Add viewport meta tag for mobile browsers
|
|
||||||
add_theme_support( 'genesis-responsive-viewport' );
|
|
||||||
|
|
||||||
// Add support for footer widgets if specified in Trestle settings
|
|
||||||
$trestle_footer_widgets_number = esc_attr( genesis_get_option( 'trestle_footer_widgets_number' ) );
|
|
||||||
add_theme_support( 'genesis-footer-widgets', $trestle_footer_widgets_number );
|
|
||||||
}
|
}
|
||||||
|
|||||||
+85
-46
@@ -7,6 +7,76 @@
|
|||||||
* @package Trestle
|
* @package Trestle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set up Trestle default settings.
|
||||||
|
*
|
||||||
|
* @since 2.0.0
|
||||||
|
*
|
||||||
|
* @return array Genesis settings updated to include Trestle defaults.
|
||||||
|
*/
|
||||||
|
function trestle_settings_defaults() {
|
||||||
|
|
||||||
|
// Trestle default key/value pairs.
|
||||||
|
$trestle_defaults = array(
|
||||||
|
'layout' => 'solid',
|
||||||
|
'logo_url' => '',
|
||||||
|
'logo_url_mobile' => '',
|
||||||
|
'favicon_url' => '',
|
||||||
|
'nav_primary_location' => 'full',
|
||||||
|
'search_in_nav' => '',
|
||||||
|
'read_more_text' => __( 'Read More »', 'trestle' ),
|
||||||
|
'revisions_number' => 3,
|
||||||
|
'footer_widgets_number' => 3,
|
||||||
|
'external_link_icons' => 0,
|
||||||
|
'email_link_icons' => 0,
|
||||||
|
'pdf_link_icons' => 0,
|
||||||
|
'doc_link_icons' => 0,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Populate Trestle settings with default values if they don't yet exist.
|
||||||
|
$options = get_option( TRESTLE_SETTINGS_FIELD );
|
||||||
|
|
||||||
|
// Set up an empty array if we're running for the first time.
|
||||||
|
if ( ! $options ) {
|
||||||
|
$options = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bail early if the settings match the defaults.
|
||||||
|
if ( $options === $trestle_defaults ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate any defaults that are missing.
|
||||||
|
foreach ( $trestle_defaults as $k => $v ) {
|
||||||
|
|
||||||
|
// Check each key to only add the missing settings.
|
||||||
|
if ( ! array_key_exists( $k, $options ) ) {
|
||||||
|
$options[$k] = $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update options with defaults.
|
||||||
|
update_option( TRESTLE_SETTINGS_FIELD, $options );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper function to get Trestle options.
|
||||||
|
*
|
||||||
|
* @since 2.0.0
|
||||||
|
* @uses genesis_get_option()
|
||||||
|
*
|
||||||
|
* @return mixed Trestle option value.
|
||||||
|
*/
|
||||||
|
function trestle_get_option( $key, $setting = null, $use_cache = true ) {
|
||||||
|
|
||||||
|
// Set default to TRESTLE_SETTINGS_FIELD.
|
||||||
|
$setting = $setting ? $setting : TRESTLE_SETTINGS_FIELD;
|
||||||
|
|
||||||
|
return genesis_get_option( $key, $setting, false );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
add_action( 'admin_enqueue_scripts', 'trestle_admin_actions' );
|
add_action( 'admin_enqueue_scripts', 'trestle_admin_actions' );
|
||||||
/**
|
/**
|
||||||
* Loads admin scripts and styles.
|
* Loads admin scripts and styles.
|
||||||
@@ -15,50 +85,13 @@ add_action( 'admin_enqueue_scripts', 'trestle_admin_actions' );
|
|||||||
*/
|
*/
|
||||||
function trestle_admin_actions() {
|
function trestle_admin_actions() {
|
||||||
|
|
||||||
// Include the main stylesheet in the editor
|
// Google fonts.
|
||||||
|
$font_url = str_replace( ',', '%2C', '//fonts.googleapis.com/css?family=Lato:300,400,700' );
|
||||||
|
add_editor_style( $font_url );
|
||||||
|
|
||||||
|
// Include the main stylesheet in the editor.
|
||||||
add_editor_style( get_stylesheet_uri() );
|
add_editor_style( get_stylesheet_uri() );
|
||||||
}
|
|
||||||
|
|
||||||
add_filter( 'genesis_theme_settings_defaults', 'trestle_custom_defaults' );
|
|
||||||
/**
|
|
||||||
* Sets up Trestle default settings.
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*
|
|
||||||
* @param array $defaults Genesis default settings.
|
|
||||||
* @return array Genesis settings updated to include Trestle defaults.
|
|
||||||
*/
|
|
||||||
function trestle_custom_defaults( $defaults ) {
|
|
||||||
|
|
||||||
// Trestle default key/value pairs
|
|
||||||
$trestle_defaults = array(
|
|
||||||
'trestle_layout' => 'solid',
|
|
||||||
'trestle_logo_url' => '',
|
|
||||||
'trestle_logo_url_mobile' => '',
|
|
||||||
'trestle_favicon_url' => '',
|
|
||||||
'trestle_nav_primary_location' => 'full',
|
|
||||||
'trestle_read_more_text' => __( 'Read More »', 'trestle' ),
|
|
||||||
'trestle_revisions_number' => 3,
|
|
||||||
'trestle_footer_widgets_number' => 3,
|
|
||||||
);
|
|
||||||
|
|
||||||
// Populate Trestle settings with default values if they don't yet exist
|
|
||||||
$options = get_option( GENESIS_SETTINGS_FIELD );
|
|
||||||
|
|
||||||
foreach ( $trestle_defaults as $k => $v ) {
|
|
||||||
|
|
||||||
// Add defaults to Genesis default settings array
|
|
||||||
$defaults[$k] = $v;
|
|
||||||
|
|
||||||
// Update actual options if they don't yet exist
|
|
||||||
if ( $options && ! array_key_exists( $k, $options ) )
|
|
||||||
$options[$k] = $v;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update options with defaults
|
|
||||||
update_option( GENESIS_SETTINGS_FIELD, $options );
|
|
||||||
|
|
||||||
return $defaults;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
add_action( 'tgmpa_register', 'trestle_register_required_plugins' );
|
add_action( 'tgmpa_register', 'trestle_register_required_plugins' );
|
||||||
@@ -95,6 +128,12 @@ function trestle_register_required_plugins() {
|
|||||||
'required' => false,
|
'required' => false,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
array(
|
||||||
|
'name' => 'Equal Height Columns',
|
||||||
|
'slug' => 'equal-height-columns',
|
||||||
|
'required' => false,
|
||||||
|
),
|
||||||
|
|
||||||
array(
|
array(
|
||||||
'name' => 'Events Manager',
|
'name' => 'Events Manager',
|
||||||
'slug' => 'events-manager',
|
'slug' => 'events-manager',
|
||||||
@@ -114,8 +153,8 @@ function trestle_register_required_plugins() {
|
|||||||
),
|
),
|
||||||
|
|
||||||
array(
|
array(
|
||||||
'name' => 'FancyBox for WordPress',
|
'name' => 'Easy FancyBox',
|
||||||
'slug' => 'fancybox-for-wordpress',
|
'slug' => 'easy-fancybox',
|
||||||
'required' => false,
|
'required' => false,
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -216,7 +255,7 @@ function trestle_register_required_plugins() {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Change this to your theme text domain, used for internationalising strings
|
// Change this to your theme text domain, used for internationalising strings.
|
||||||
$theme_text_domain = 'mightyminnow';
|
$theme_text_domain = 'mightyminnow';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -258,4 +297,4 @@ function trestle_register_required_plugins() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
tgmpa( $plugins, $config );
|
tgmpa( $plugins, $config );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,147 +0,0 @@
|
|||||||
/**
|
|
||||||
* JavaScript for the Customizer Preview
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
( function( $ ) {
|
|
||||||
|
|
||||||
// Layout
|
|
||||||
wp.customize( 'genesis-settings[trestle_layout]', function( value ) {
|
|
||||||
value.bind( function( value ) {
|
|
||||||
|
|
||||||
var $body = $( 'body' );
|
|
||||||
|
|
||||||
switch ( value ) {
|
|
||||||
case 'solid':
|
|
||||||
$body.removeClass( 'bubble' );
|
|
||||||
break;
|
|
||||||
case 'bubble':
|
|
||||||
$body.addClass( 'bubble' );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Custom logo
|
|
||||||
wp.customize( 'genesis-settings[trestle_logo_url]', function( value ) {
|
|
||||||
value.bind( function( url ) {
|
|
||||||
|
|
||||||
var $body = $( 'body' );
|
|
||||||
|
|
||||||
if ( 0 === $.trim( url ).length ) {
|
|
||||||
$body.removeClass( 'has-logo' );
|
|
||||||
$( '.site-title a.image-link' ).remove();
|
|
||||||
} else {
|
|
||||||
$body.addClass( 'has-logo' );
|
|
||||||
$( '.site-title a.image-link' ).remove();
|
|
||||||
$( '.site-title' ).append( '<a href="/" class="image-link"><img class="logo logo-full show" src="' + url + '" /></a>' );
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Favicon
|
|
||||||
wp.customize( 'genesis-settings[trestle_favicon_url]', function( value ) {
|
|
||||||
value.bind( function( url ) {
|
|
||||||
|
|
||||||
var $faviconElem = $( 'link[rel="Shortcut Icon"]' );
|
|
||||||
$faviconElem.attr( 'href', url );
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Primary Nav Location
|
|
||||||
wp.customize( 'genesis-settings[trestle_nav_primary_location]', function( value ) {
|
|
||||||
value.bind( function( value ) {
|
|
||||||
|
|
||||||
var $body = $( 'body' );
|
|
||||||
var $nav = $( '.nav-primary' );
|
|
||||||
|
|
||||||
switch ( value ) {
|
|
||||||
case 'full':
|
|
||||||
$body.removeClass( 'nav-primary-location-header' )
|
|
||||||
.addClass( 'nav-primary-location-full' );
|
|
||||||
$nav.remove().insertAfter( '.site-header' );
|
|
||||||
break;
|
|
||||||
case 'header':
|
|
||||||
$body.removeClass( 'nav-primary-location-full' )
|
|
||||||
.addClass( 'nav-primary-location-header' );
|
|
||||||
$nav.remove().appendTo( '.site-header .wrap' );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Custom Read More Link Text
|
|
||||||
wp.customize( 'genesis-settings[trestle_read_more_text]', function( value ) {
|
|
||||||
value.bind( function( value ) {
|
|
||||||
|
|
||||||
$( 'a.more-link' ).html( value );
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// External Links
|
|
||||||
wp.customize( 'genesis-settings[trestle_external_link_icons]', function( value ) {
|
|
||||||
value.bind( function( value ) {
|
|
||||||
|
|
||||||
var $body = $( 'body' );
|
|
||||||
|
|
||||||
if ( value ) {
|
|
||||||
$body.addClass( 'external-link-icons' );
|
|
||||||
} else {
|
|
||||||
$body.removeClass( 'external-link-icons' );
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Email Links
|
|
||||||
wp.customize( 'genesis-settings[trestle_email_link_icons]', function( value ) {
|
|
||||||
value.bind( function( value ) {
|
|
||||||
|
|
||||||
var $body = $( 'body' );
|
|
||||||
|
|
||||||
if ( value ) {
|
|
||||||
$body.addClass( 'email-link-icons' );
|
|
||||||
} else {
|
|
||||||
$body.removeClass( 'email-link-icons' );
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// PDF Links
|
|
||||||
wp.customize( 'genesis-settings[trestle_pdf_link_icons]', function( value ) {
|
|
||||||
value.bind( function( value ) {
|
|
||||||
|
|
||||||
var $body = $( 'body' );
|
|
||||||
|
|
||||||
if ( value ) {
|
|
||||||
$body.addClass( 'pdf-link-icons' );
|
|
||||||
} else {
|
|
||||||
$body.removeClass( 'pdf-link-icons' );
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Doc Links
|
|
||||||
wp.customize( 'genesis-settings[trestle_doc_link_icons]', function( value ) {
|
|
||||||
value.bind( function( value ) {
|
|
||||||
|
|
||||||
var $body = $( 'body' );
|
|
||||||
|
|
||||||
if ( value ) {
|
|
||||||
$body.addClass( 'doc-link-icons' );
|
|
||||||
} else {
|
|
||||||
$body.removeClass( 'doc-link-icons' );
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
})( jQuery );
|
|
||||||
+232
-260
@@ -1,44 +1,27 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Trestle Customizer Controls
|
* Trestle Customizer Controls.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 2.0.0
|
||||||
*
|
*
|
||||||
* @package Trestle
|
* @package Trestle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
add_action( 'customize_preview_init', 'trestle_customizer_preview_js' );
|
|
||||||
/**
|
|
||||||
* Enqueue scripts for the site preview iframe on the customizer screen
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
function trestle_customizer_preview_js() {
|
|
||||||
|
|
||||||
wp_enqueue_script(
|
|
||||||
'trestle_customizer',
|
|
||||||
get_stylesheet_directory_uri() . '/includes/admin/customizer.js',
|
|
||||||
array( 'jquery', 'customize-preview' ), // Dependencies
|
|
||||||
null, // Version
|
|
||||||
true // Load in Footer
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
add_action( 'customize_register', 'trestle_customizer_controls' );
|
add_action( 'customize_register', 'trestle_customizer_controls' );
|
||||||
/**
|
/**
|
||||||
* Register Trestle's controls
|
* Register Trestle's controls.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 2.0.0
|
||||||
*
|
*
|
||||||
* @param $wp_customize The Customizer Object
|
* @param $wp_customize The Customizer Object.
|
||||||
*/
|
*/
|
||||||
function trestle_customizer_controls( $wp_customize ) {
|
function trestle_customizer_controls( $wp_customize ) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trestle Settings Section
|
* Trestle Settings Section.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Add the section
|
// Add the section.
|
||||||
$wp_customize->add_section(
|
$wp_customize->add_section(
|
||||||
'trestle_settings_section',
|
'trestle_settings_section',
|
||||||
array(
|
array(
|
||||||
@@ -47,317 +30,306 @@ function trestle_customizer_controls( $wp_customize ) {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Layout
|
// Layout.
|
||||||
$wp_customize->add_setting(
|
$wp_customize->add_setting(
|
||||||
'genesis-settings[trestle_layout]',
|
'trestle-settings[layout]',
|
||||||
array(
|
array(
|
||||||
'default' => '',
|
'default' => trestle_get_option( 'layout' ),
|
||||||
'type' => 'option',
|
'type' => 'option',
|
||||||
'transport' => 'postMessage',
|
'capability' => 'edit_theme_options',
|
||||||
'capability' => 'edit_theme_options',
|
)
|
||||||
)
|
);
|
||||||
);
|
$wp_customize->add_control(
|
||||||
$wp_customize->add_control(
|
'trestle_layout_control',
|
||||||
'trestle_layout_control',
|
array(
|
||||||
array(
|
'section' => 'trestle_settings_section',
|
||||||
'section' => 'trestle_settings_section',
|
'settings' => 'trestle-settings[layout]',
|
||||||
'settings' => 'genesis-settings[trestle_layout]',
|
'label' => __( 'Layout', 'trestle' ),
|
||||||
'label' => __( 'Layout', 'trestle' ),
|
'type' => 'radio',
|
||||||
'type' => 'radio',
|
'choices' => array(
|
||||||
'choices' => array(
|
'bubble' => __( 'Bubble', 'trestle' ),
|
||||||
'bubble' => __( 'Bubble', 'trestle' ),
|
'solid' => __( 'Solid', 'trestle' ),
|
||||||
'solid' => __( 'Solid', 'trestle' ),
|
)
|
||||||
)
|
)
|
||||||
)
|
);
|
||||||
);
|
|
||||||
|
// Upload a logo.
|
||||||
// Upload a logo
|
$wp_customize->add_setting(
|
||||||
$wp_customize->add_setting(
|
'trestle-settings[logo_url]',
|
||||||
'genesis-settings[trestle_logo_url]',
|
array(
|
||||||
array(
|
'default' => trestle_get_option( 'logo_url' ),
|
||||||
'default' => genesis_get_option( 'trestle_logo_url' ),
|
'type' => 'option',
|
||||||
'type' => 'option',
|
'capability' => 'edit_theme_options',
|
||||||
'transport' => 'postMessage',
|
'sanitize_callback' => 'esc_url_raw',
|
||||||
'capability' => 'edit_theme_options',
|
)
|
||||||
)
|
);
|
||||||
);
|
$wp_customize->add_control(
|
||||||
$wp_customize->add_control(
|
new WP_Customize_Image_Control(
|
||||||
new WP_Customize_Image_Control(
|
$wp_customize,
|
||||||
$wp_customize,
|
'trestle_logo_control',
|
||||||
'trestle_logo_control',
|
array(
|
||||||
array(
|
'label' => __( 'Upload a logo', 'trestle' ),
|
||||||
'label' => __( 'Upload a logo', 'trestle' ),
|
'section' => 'trestle_settings_section',
|
||||||
'section' => 'trestle_settings_section',
|
'settings' => 'trestle-settings[logo_url]',
|
||||||
'settings' => 'genesis-settings[trestle_logo_url]',
|
)
|
||||||
)
|
)
|
||||||
)
|
);
|
||||||
);
|
|
||||||
|
// Upload a mobile logo.
|
||||||
// Upload a mobile logo
|
$wp_customize->add_setting(
|
||||||
$wp_customize->add_setting(
|
'trestle-settings[logo_url_mobile]',
|
||||||
'genesis-settings[trestle_logo_url_mobile]',
|
array(
|
||||||
array(
|
'default' => trestle_get_option( 'logo_url_mobile' ),
|
||||||
'default' => genesis_get_option( 'trestle_logo_url_mobile' ),
|
'type' => 'option',
|
||||||
'type' => 'option',
|
'capability' => 'edit_theme_options',
|
||||||
'transport' => 'postMessage',
|
'sanitize_callback' => 'esc_url_raw',
|
||||||
'capability' => 'edit_theme_options',
|
)
|
||||||
)
|
);
|
||||||
);
|
$wp_customize->add_control(
|
||||||
$wp_customize->add_control(
|
new WP_Customize_Image_Control(
|
||||||
new WP_Customize_Image_Control(
|
$wp_customize,
|
||||||
$wp_customize,
|
'trestle_mobile_logo_control',
|
||||||
'trestle_mobile_logo_control',
|
array(
|
||||||
array(
|
'label' => __( 'Upload a mobile logo', 'trestle' ),
|
||||||
'label' => __( 'Upload a mobile logo', 'trestle' ),
|
'section' => 'trestle_settings_section',
|
||||||
'section' => 'trestle_settings_section',
|
'settings' => 'trestle-settings[logo_url_mobile]',
|
||||||
'settings' => 'genesis-settings[trestle_logo_url_mobile]',
|
)
|
||||||
)
|
)
|
||||||
)
|
);
|
||||||
);
|
|
||||||
|
// Upload a mobile logo.
|
||||||
// Upload a mobile logo
|
$wp_customize->add_setting(
|
||||||
$wp_customize->add_setting(
|
'trestle-settings[favicon_url]',
|
||||||
'genesis-settings[trestle_favicon_url]',
|
array(
|
||||||
array(
|
'default' => trestle_get_option( 'favicon_url' ),
|
||||||
'default' => genesis_get_option( 'trestle_favicon_url' ),
|
'type' => 'option',
|
||||||
'type' => 'option',
|
'capability' => 'edit_theme_options',
|
||||||
'transport' => 'postMessage',
|
'sanitize_callback' => 'esc_url_raw',
|
||||||
'capability' => 'edit_theme_options',
|
)
|
||||||
)
|
);
|
||||||
);
|
$wp_customize->add_control(
|
||||||
$wp_customize->add_control(
|
new WP_Customize_Image_Control(
|
||||||
new WP_Customize_Image_Control(
|
$wp_customize,
|
||||||
$wp_customize,
|
'trestle_favicon_control',
|
||||||
'trestle_favicon_control',
|
array(
|
||||||
array(
|
'label' => __( 'Upload a favicon', 'trestle' ),
|
||||||
'label' => __( 'Upload a favicon', 'trestle' ),
|
'section' => 'trestle_settings_section',
|
||||||
'section' => 'trestle_settings_section',
|
'settings' => 'trestle-settings[favicon_url]',
|
||||||
'settings' => 'genesis-settings[trestle_favicon_url]',
|
)
|
||||||
)
|
)
|
||||||
)
|
);
|
||||||
);
|
|
||||||
|
// Primary nav style.
|
||||||
// Primary nav style
|
$wp_customize->add_setting(
|
||||||
$wp_customize->add_setting(
|
'trestle-settings[nav_primary_location]',
|
||||||
'genesis-settings[trestle_nav_primary_location]',
|
array(
|
||||||
array(
|
'default' => trestle_get_option( 'nav_primary_location' ),
|
||||||
'default' => genesis_get_option( 'trestle_nav_primary_location' ),
|
'type' => 'option',
|
||||||
'type' => 'option',
|
'capability' => 'edit_theme_options',
|
||||||
'transport' => 'postMessage',
|
)
|
||||||
'capability' => 'edit_theme_options',
|
);
|
||||||
)
|
$wp_customize->add_control(
|
||||||
);
|
'trestle_nav_primary_location_control',
|
||||||
$wp_customize->add_control(
|
array(
|
||||||
'trestle_nav_primary_location_control',
|
'section' => 'trestle_settings_section',
|
||||||
array(
|
'settings' => 'trestle-settings[nav_primary_location]',
|
||||||
'section' => 'trestle_settings_section',
|
'label' => __( 'Menu style', 'trestle' ),
|
||||||
'settings' => 'genesis-settings[trestle_nav_primary_location]',
|
'type' => 'select',
|
||||||
'label' => __( 'Menu style', 'trestle' ),
|
'choices' => array(
|
||||||
'type' => 'select',
|
'full' => __( 'Full Width', 'trestle' ),
|
||||||
'choices' => array(
|
'header' => __( 'Header Right', 'trestle' ),
|
||||||
'full' => __( 'Full Width', 'trestle' ),
|
)
|
||||||
'header' => __( 'Header Right', 'trestle' ),
|
)
|
||||||
)
|
);
|
||||||
)
|
|
||||||
);
|
// Primary nav extras.
|
||||||
|
$wp_customize->add_setting(
|
||||||
// Primary nav extras
|
'trestle-settings[search_in_nav]',
|
||||||
$wp_customize->add_setting(
|
array(
|
||||||
'genesis-settings[trestle_custom_nav_extras_text]',
|
'default' => trestle_get_option( 'search_in_nav' ),
|
||||||
array(
|
'type' => 'option',
|
||||||
'default' => genesis_get_option( 'trestle_custom_nav_extras_text' ),
|
'capability' => 'edit_theme_options',
|
||||||
'type' => 'option',
|
)
|
||||||
'transport' => 'postMessage',
|
);
|
||||||
'capability' => 'edit_theme_options',
|
$wp_customize->add_control(
|
||||||
)
|
'trestle_search_in_nav_control',
|
||||||
);
|
array(
|
||||||
$wp_customize->add_control(
|
'section' => 'trestle_settings_section',
|
||||||
'trestle_custom_nav_extras_text_control',
|
'settings' => 'trestle-settings[search_in_nav]',
|
||||||
array(
|
'label' => __( 'Add search to mobile navigation', 'trestle' ),
|
||||||
'section' => 'trestle_settings_section',
|
'type' => 'checkbox',
|
||||||
'settings' => 'genesis-settings[trestle_custom_nav_extras_text]',
|
)
|
||||||
'label' => __( 'Add search to mobile navigation', 'trestle' ),
|
);
|
||||||
'type' => 'checkbox',
|
|
||||||
)
|
// Blog post custom read more link text.
|
||||||
);
|
$wp_customize->add_setting(
|
||||||
|
'trestle-settings[read_more_text]',
|
||||||
// Blog post custom read more link text
|
array(
|
||||||
$wp_customize->add_setting(
|
'default' => trestle_get_option( 'read_more_text' ),
|
||||||
'genesis-settings[trestle_read_more_text]',
|
|
||||||
array(
|
|
||||||
'default' => genesis_get_option( 'trestle_read_more_text' ),
|
|
||||||
'type' => 'option',
|
'type' => 'option',
|
||||||
'transport' => 'postMessage',
|
|
||||||
'capability' => 'edit_theme_options',
|
'capability' => 'edit_theme_options',
|
||||||
'sanitize_callback' => 'wp_kses_post',
|
'sanitize_callback' => 'wp_kses_post',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_read_more_text_control',
|
'trestle_read_more_text_control',
|
||||||
array(
|
|
||||||
'section' => 'trestle_settings_section',
|
|
||||||
'settings' => 'genesis-settings[trestle_read_more_text]',
|
|
||||||
'label' => __( 'Custom read more link text', 'trestle' ),
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Post revisions number
|
|
||||||
$wp_customize->add_setting(
|
|
||||||
'genesis-settings[trestle_revisions_number]',
|
|
||||||
array(
|
array(
|
||||||
'default' => genesis_get_option( 'trestle_revisions_number' ),
|
'section' => 'trestle_settings_section',
|
||||||
'type' => 'option',
|
'settings' => 'trestle-settings[read_more_text]',
|
||||||
'transport' => 'postMessage',
|
'label' => __( 'Custom read more link text', 'trestle' ),
|
||||||
'capability' => 'edit_theme_options',
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Post revisions number.
|
||||||
|
$wp_customize->add_setting(
|
||||||
|
'trestle-settings[revisions_number]',
|
||||||
|
array(
|
||||||
|
'default' => trestle_get_option( 'revisions_number' ),
|
||||||
|
'type' => 'option',
|
||||||
|
'capability' => 'edit_theme_options',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_revisions_number_control',
|
'trestle_revisions_number_control',
|
||||||
array(
|
|
||||||
'section' => 'trestle_settings_section',
|
|
||||||
'settings' => 'genesis-settings[trestle_revisions_number]',
|
|
||||||
'label' => __( 'Number of post revisions', 'trestle' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'choices' => array(
|
|
||||||
'-1' => __( 'Unlimited', 'trestle' ),
|
|
||||||
'0' => '0',
|
|
||||||
'1' => '1',
|
|
||||||
'2' => '2',
|
|
||||||
'3' => '3',
|
|
||||||
'4' => '4',
|
|
||||||
'5' => '5',
|
|
||||||
'6' => '6',
|
|
||||||
'7' => '7',
|
|
||||||
'8' => '8',
|
|
||||||
'9' => '9',
|
|
||||||
'10' => '10',
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Footer Widget Areas
|
|
||||||
$wp_customize->add_setting(
|
|
||||||
'genesis-settings[trestle_footer_widgets_number]',
|
|
||||||
array(
|
array(
|
||||||
'default' => genesis_get_option( 'trestle_footer_widgets_number' ),
|
'section' => 'trestle_settings_section',
|
||||||
'type' => 'option',
|
'settings' => 'trestle-settings[revisions_number]',
|
||||||
'transport' => 'postMessage',
|
'label' => __( 'Number of post revisions', 'trestle' ),
|
||||||
'capability' => 'edit_theme_options',
|
'type' => 'select',
|
||||||
|
'choices' => array(
|
||||||
|
'-1' => __( 'Unlimited', 'trestle' ),
|
||||||
|
'0' => '0',
|
||||||
|
'1' => '1',
|
||||||
|
'2' => '2',
|
||||||
|
'3' => '3',
|
||||||
|
'4' => '4',
|
||||||
|
'5' => '5',
|
||||||
|
'6' => '6',
|
||||||
|
'7' => '7',
|
||||||
|
'8' => '8',
|
||||||
|
'9' => '9',
|
||||||
|
'10' => '10',
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Footer Widget Areas.
|
||||||
|
$wp_customize->add_setting(
|
||||||
|
'trestle-settings[footer_widgets_number]',
|
||||||
|
array(
|
||||||
|
'default' => trestle_get_option( 'footer_widgets_number' ),
|
||||||
|
'type' => 'option',
|
||||||
|
'capability' => 'edit_theme_options',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_footer_widgets_number_control',
|
'trestle_footer_widgets_number_control',
|
||||||
array(
|
|
||||||
'section' => 'trestle_settings_section',
|
|
||||||
'settings' => 'genesis-settings[trestle_footer_widgets_number]',
|
|
||||||
'label' => __( 'Number of footer widgets', 'trestle' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'choices' => array(
|
|
||||||
'0' => '0',
|
|
||||||
'1' => '1',
|
|
||||||
'2' => '2',
|
|
||||||
'3' => '3',
|
|
||||||
'4' => '4',
|
|
||||||
'5' => '5',
|
|
||||||
'6' => '6',
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Add a label for the link icons
|
|
||||||
$wp_customize->add_setting(
|
|
||||||
'genesis-settings[trestle_link_icons_title]',
|
|
||||||
array(
|
array(
|
||||||
'default' => '',
|
'section' => 'trestle_settings_section',
|
||||||
'type' => 'option',
|
'settings' => 'trestle-settings[footer_widgets_number]',
|
||||||
'capability' => 'edit_theme_options',
|
'label' => __( 'Number of footer widgets', 'trestle' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'choices' => array(
|
||||||
|
'0' => '0',
|
||||||
|
'1' => '1',
|
||||||
|
'2' => '2',
|
||||||
|
'3' => '3',
|
||||||
|
'4' => '4',
|
||||||
|
'5' => '5',
|
||||||
|
'6' => '6',
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add a label for the link icons.
|
||||||
|
$wp_customize->add_setting(
|
||||||
|
'trestle-settings[link_icons_title]',
|
||||||
|
array(
|
||||||
|
'default' => '',
|
||||||
|
'type' => 'option',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_link_icons_title',
|
'trestle_link_icons_title',
|
||||||
array(
|
array(
|
||||||
'section' => 'trestle_settings_section',
|
'section' => 'trestle_settings_section',
|
||||||
'settings' => 'genesis-settings[trestle_link_icons_title]',
|
'settings' => 'trestle-settings[link_icons_title]',
|
||||||
'label' => __( 'Icon links', 'trestle' ),
|
'label' => __( 'Icon links', 'trestle' ),
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// External Link Icons
|
// External Link Icons.
|
||||||
$wp_customize->add_setting(
|
$wp_customize->add_setting(
|
||||||
'genesis-settings[trestle_external_link_icons]',
|
'trestle-settings[external_link_icons]',
|
||||||
array(
|
array(
|
||||||
'default' => genesis_get_option( 'trestle_external_link_icons' ),
|
'default' => trestle_get_option( 'external_link_icons' ),
|
||||||
'type' => 'option',
|
'type' => 'option',
|
||||||
'transport' => 'postMessage',
|
'capability' => 'edit_theme_options',
|
||||||
'capability' => 'edit_theme_options',
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_external_link_icons',
|
'trestle_external_link_icons',
|
||||||
array(
|
array(
|
||||||
'section' => 'trestle_settings_section',
|
'section' => 'trestle_settings_section',
|
||||||
'settings' => 'genesis-settings[trestle_external_link_icons]',
|
'settings' => 'trestle-settings[external_link_icons]',
|
||||||
'label' => __( 'Add icons to external links', 'trestle' ),
|
'label' => __( 'Add icons to external links', 'trestle' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// E-mail Link Icons
|
// E-mail Link Icons.
|
||||||
$wp_customize->add_setting(
|
$wp_customize->add_setting(
|
||||||
'genesis-settings[trestle_email_link_icons]',
|
'trestle-settings[email_link_icons]',
|
||||||
array(
|
array(
|
||||||
'default' => genesis_get_option( 'trestle_email_link_icons' ),
|
'default' => trestle_get_option( 'email_link_icons' ),
|
||||||
'type' => 'option',
|
'type' => 'option',
|
||||||
'transport' => 'postMessage',
|
'capability' => 'edit_theme_options',
|
||||||
'capability' => 'edit_theme_options',
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_email_link_icons',
|
'trestle_email_link_icons',
|
||||||
array(
|
array(
|
||||||
'section' => 'trestle_settings_section',
|
'section' => 'trestle_settings_section',
|
||||||
'settings' => 'genesis-settings[trestle_email_link_icons]',
|
'settings' => 'trestle-settings[email_link_icons]',
|
||||||
'label' => __( 'Add icons to email links', 'trestle' ),
|
'label' => __( 'Add icons to email links', 'trestle' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// PDF Link Icons
|
// PDF Link Icons.
|
||||||
$wp_customize->add_setting(
|
$wp_customize->add_setting(
|
||||||
'genesis-settings[trestle_pdf_link_icons]',
|
'trestle-settings[pdf_link_icons]',
|
||||||
array(
|
array(
|
||||||
'default' => genesis_get_option( 'trestle_pdf_link_icons' ),
|
'default' => trestle_get_option( 'pdf_link_icons' ),
|
||||||
'type' => 'option',
|
'type' => 'option',
|
||||||
'transport' => 'postMessage',
|
'capability' => 'edit_theme_options',
|
||||||
'capability' => 'edit_theme_options',
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_pdf_link_icons',
|
'trestle_pdf_link_icons',
|
||||||
array(
|
array(
|
||||||
'section' => 'trestle_settings_section',
|
'section' => 'trestle_settings_section',
|
||||||
'settings' => 'genesis-settings[trestle_pdf_link_icons]',
|
'settings' => 'trestle-settings[pdf_link_icons]',
|
||||||
'label' => __( 'Add icons to .pdf links', 'trestle' ),
|
'label' => __( 'Add icons to .pdf links', 'trestle' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Doc Link Icons
|
// Doc Link Icons.
|
||||||
$wp_customize->add_setting(
|
$wp_customize->add_setting(
|
||||||
'genesis-settings[trestle_doc_link_icons]',
|
'trestle-settings[doc_link_icons]',
|
||||||
array(
|
array(
|
||||||
'default' => genesis_get_option( 'trestle_doc_link_icons' ),
|
'default' => trestle_get_option( 'doc_link_icons' ),
|
||||||
'type' => 'option',
|
'type' => 'option',
|
||||||
'transport' => 'postMessage',
|
'capability' => 'edit_theme_options',
|
||||||
'capability' => 'edit_theme_options',
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$wp_customize->add_control(
|
$wp_customize->add_control(
|
||||||
'trestle_doc_link_icons',
|
'trestle_doc_link_icons',
|
||||||
array(
|
array(
|
||||||
'section' => 'trestle_settings_section',
|
'section' => 'trestle_settings_section',
|
||||||
'settings' => 'genesis-settings[trestle_doc_link_icons]',
|
'settings' => 'trestle-settings[doc_link_icons]',
|
||||||
'label' => __( 'Add icons to .doc links', 'trestle' ),
|
'label' => __( 'Add icons to .doc links', 'trestle' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -9,6 +9,28 @@
|
|||||||
* @package Trestle
|
* @package Trestle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*===========================================
|
||||||
|
* Theme Setup
|
||||||
|
===========================================*/
|
||||||
|
add_action( 'after_setup_theme', 'trestle_add_theme_support' );
|
||||||
|
/**
|
||||||
|
* Initialize Trestle defaults and theme options.
|
||||||
|
*
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
|
function trestle_add_theme_support() {
|
||||||
|
|
||||||
|
// Add HTML5 markup structure.
|
||||||
|
add_theme_support( 'html5' );
|
||||||
|
|
||||||
|
// Add viewport meta tag for mobile browsers.
|
||||||
|
add_theme_support( 'genesis-responsive-viewport' );
|
||||||
|
|
||||||
|
// Add support for footer widgets if specified in Trestle settings.
|
||||||
|
add_theme_support( 'genesis-footer-widgets', trestle_get_option( 'footer_widgets_number' ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*===========================================
|
/*===========================================
|
||||||
* 3rd Party Libraries
|
* 3rd Party Libraries
|
||||||
===========================================*/
|
===========================================*/
|
||||||
@@ -21,8 +43,8 @@ add_action( 'init', 'trestle_load_bfa' );
|
|||||||
*/
|
*/
|
||||||
function trestle_load_bfa() {
|
function trestle_load_bfa() {
|
||||||
|
|
||||||
// Set the library initialization args
|
// Set the library initialization args.
|
||||||
$args = array(
|
$args = array(
|
||||||
'version' => 'latest',
|
'version' => 'latest',
|
||||||
'minified' => true,
|
'minified' => true,
|
||||||
'remove_existing_fa' => false,
|
'remove_existing_fa' => false,
|
||||||
@@ -30,10 +52,10 @@ function trestle_load_bfa() {
|
|||||||
'load_admin_styles' => true,
|
'load_admin_styles' => true,
|
||||||
'load_shortcode' => true,
|
'load_shortcode' => true,
|
||||||
'load_tinymce_plugin' => true,
|
'load_tinymce_plugin' => true,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Initialize the Better Font Awesome Library.
|
// Initialize the Better Font Awesome Library.
|
||||||
Better_Font_Awesome_Library::get_instance( $args );
|
Better_Font_Awesome_Library::get_instance( $args );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,26 +71,26 @@ add_action( 'wp_enqueue_scripts', 'trestle_header_actions' );
|
|||||||
*/
|
*/
|
||||||
function trestle_header_actions() {
|
function trestle_header_actions() {
|
||||||
|
|
||||||
// Google fonts
|
// Google fonts.
|
||||||
wp_enqueue_style( 'theme-google-fonts', '//fonts.googleapis.com/css?family=Lato:300,400,700' );
|
wp_enqueue_style( 'theme-google-fonts', '//fonts.googleapis.com/css?family=Lato:300,400,700' );
|
||||||
|
|
||||||
// Theme jQuery
|
// Theme jQuery.
|
||||||
wp_enqueue_script( 'theme-jquery', get_stylesheet_directory_uri() . '/includes/js/theme-jquery.js', array( 'jquery' ), CHILD_THEME_VERSION, true );
|
wp_enqueue_script( 'theme-jquery', get_stylesheet_directory_uri() . '/includes/js/theme-jquery.js', array( 'jquery' ), TRESTLE_THEME_VERSION, true );
|
||||||
|
|
||||||
// Get WP uploads directory
|
// Get WP uploads directory.
|
||||||
$upload_dir = wp_upload_dir();
|
$upload_dir = wp_upload_dir();
|
||||||
$upload_path = $upload_dir['basedir'];
|
$upload_path = $upload_dir['basedir'];
|
||||||
$upload_url = $upload_dir['baseurl'];
|
$upload_url = $upload_dir['baseurl'];
|
||||||
|
|
||||||
// Custom CSS (if it exists)
|
// Custom CSS (if it exists).
|
||||||
$custom_css_file = '/trestle/custom.css';
|
$custom_css_file = '/trestle/custom.css';
|
||||||
if ( is_readable( $upload_path . $custom_css_file ) )
|
if ( is_readable( $upload_path . $custom_css_file ) )
|
||||||
wp_enqueue_style( 'trestle-custom-css', $upload_url . $custom_css_file );
|
wp_enqueue_style( 'trestle-custom-css', $upload_url . $custom_css_file );
|
||||||
|
|
||||||
// Custom jQuery (if it exists)
|
// Custom jQuery (if it exists).
|
||||||
$custom_js_file = '/trestle/custom.js';
|
$custom_js_file = '/trestle/custom.js';
|
||||||
if ( is_readable( $upload_path . $custom_js_file ) )
|
if ( is_readable( $upload_path . $custom_js_file ) )
|
||||||
wp_enqueue_script( 'trestle-custom-jquery', $upload_url . $custom_js_file, array( 'jquery' ), CHILD_THEME_VERSION, true );
|
wp_enqueue_script( 'trestle-custom-jquery', $upload_url . $custom_js_file, array( 'jquery' ), TRESTLE_THEME_VERSION, true );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +105,9 @@ add_filter( 'genesis_pre_load_favicon', 'trestle_do_custom_favicon' );
|
|||||||
* @return string Custom favicon URL (if specified), or the default URL.
|
* @return string Custom favicon URL (if specified), or the default URL.
|
||||||
*/
|
*/
|
||||||
function trestle_do_custom_favicon( $favicon_url ) {
|
function trestle_do_custom_favicon( $favicon_url ) {
|
||||||
return genesis_get_option( 'trestle_favicon_url' ) ? genesis_get_option( 'trestle_favicon_url' ) : $favicon_url;
|
|
||||||
|
$trestle_favicon_url = trestle_get_option( 'favicon_url' );
|
||||||
|
return $trestle_favicon_url ? $trestle_favicon_url : $favicon_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*===========================================
|
/*===========================================
|
||||||
@@ -101,34 +125,49 @@ add_filter( 'body_class', 'trestle_body_classes' );
|
|||||||
*/
|
*/
|
||||||
function trestle_body_classes( $classes ) {
|
function trestle_body_classes( $classes ) {
|
||||||
|
|
||||||
// Add 'no-jquery' class to be removed by jQuery if enabled
|
// Add 'no-jquery' class to be removed by jQuery if enabled.
|
||||||
$classes[] = 'no-jquery';
|
$classes[] = 'no-jquery';
|
||||||
|
|
||||||
// Add 'bubble' class
|
// Add 'bubble' class.
|
||||||
if ( 'bubble' == genesis_get_option( 'trestle_layout' ) )
|
if ( 'bubble' == trestle_get_option( 'layout' ) )
|
||||||
$classes[] = 'bubble';
|
$classes[] = 'bubble';
|
||||||
|
|
||||||
// Add link icon classes
|
/**
|
||||||
if ( genesis_get_option( 'trestle_external_link_icons' ) )
|
* Add link icon classes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ( trestle_get_option( 'external_link_icons' ) ) {
|
||||||
$classes[] = 'external-link-icons';
|
$classes[] = 'external-link-icons';
|
||||||
if ( genesis_get_option( 'trestle_email_link_icons' ) )
|
}
|
||||||
|
|
||||||
|
if ( trestle_get_option( 'email_link_icons' ) ) {
|
||||||
$classes[] = 'email-link-icons';
|
$classes[] = 'email-link-icons';
|
||||||
if ( genesis_get_option( 'trestle_pdf_link_icons' ) )
|
}
|
||||||
|
|
||||||
|
if ( trestle_get_option( 'pdf_link_icons' ) ) {
|
||||||
$classes[] = 'pdf-link-icons';
|
$classes[] = 'pdf-link-icons';
|
||||||
if ( genesis_get_option( 'trestle_doc_link_icons' ) )
|
}
|
||||||
|
|
||||||
|
if ( trestle_get_option( 'doc_link_icons' ) ) {
|
||||||
$classes[] = 'doc-link-icons';
|
$classes[] = 'doc-link-icons';
|
||||||
|
}
|
||||||
|
|
||||||
// Add menu style class
|
// Add menu style class.
|
||||||
if ( genesis_get_option( 'trestle_nav_primary_location' ) )
|
$nav_primary_location = esc_attr( trestle_get_option( 'nav_primary_location' ) );
|
||||||
$classes[] = 'nav-primary-location-' . esc_attr( genesis_get_option( 'trestle_nav_primary_location' ) );
|
if ( $nav_primary_location ) {
|
||||||
|
$classes[] = 'nav-primary-location-' . $nav_primary_location;
|
||||||
|
}
|
||||||
|
|
||||||
// Add footer widget number class
|
// Add footer widget number class.
|
||||||
if ( genesis_get_option( 'trestle_footer_widgets_number' ) )
|
$footer_widgets_number = esc_attr( trestle_get_option( 'footer_widgets_number' ) );
|
||||||
$classes[] = 'footer-widgets-number-' . esc_attr( genesis_get_option( 'trestle_footer_widgets_number' ) );
|
if ( $footer_widgets_number ) {
|
||||||
|
$classes[] = 'footer-widgets-number-' . $footer_widgets_number;
|
||||||
|
}
|
||||||
|
|
||||||
// Add logo class
|
// Add logo class.
|
||||||
if ( genesis_get_option( 'trestle_logo_url' ) || genesis_get_option( 'trestle_logo_url_mobile' ) )
|
if ( trestle_get_option( 'logo_url' ) || trestle_get_option( 'logo_url_mobile' ) ) {
|
||||||
$classes[] = 'has-logo';
|
$classes[] = 'has-logo';
|
||||||
|
}
|
||||||
|
|
||||||
return $classes;
|
return $classes;
|
||||||
|
|
||||||
@@ -147,17 +186,17 @@ add_filter( 'genesis_seo_title', 'trestle_do_logos', 10, 3 );
|
|||||||
*/
|
*/
|
||||||
function trestle_do_logos( $title, $inside, $wrap ) {
|
function trestle_do_logos( $title, $inside, $wrap ) {
|
||||||
|
|
||||||
$logo_url = genesis_get_option( 'trestle_logo_url' );
|
$logo_url = trestle_get_option( 'logo_url' );
|
||||||
$logo_url_mobile = genesis_get_option( 'trestle_logo_url_mobile' );
|
$logo_url_mobile = trestle_get_option( 'logo_url_mobile' );
|
||||||
$logo_html = '';
|
$logo_html = '';
|
||||||
|
|
||||||
// Regular logo
|
// Regular logo.
|
||||||
if ( $logo_url ) {
|
if ( $logo_url ) {
|
||||||
|
|
||||||
// Default logo class
|
// Default logo class.
|
||||||
$classes = array('logo-full');
|
$classes = array('logo-full');
|
||||||
|
|
||||||
// If no mobile logo is specified, make regular logo act as mobile logo too
|
// If no mobile logo is specified, make regular logo act as mobile logo too.
|
||||||
if( ! $logo_url_mobile )
|
if( ! $logo_url_mobile )
|
||||||
$classes[] = 'show';
|
$classes[] = 'show';
|
||||||
|
|
||||||
@@ -168,13 +207,13 @@ function trestle_do_logos( $title, $inside, $wrap ) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mobile logo
|
// Mobile logo.
|
||||||
if ( $logo_url_mobile ) {
|
if ( $logo_url_mobile ) {
|
||||||
|
|
||||||
// Default mobile logo class
|
// Default mobile logo class.
|
||||||
$classes = array('logo-mobile');
|
$classes = array('logo-mobile');
|
||||||
|
|
||||||
// If no regular logo is specified, make mobile logo act as regular logo too
|
// If no regular logo is specified, make mobile logo act as regular logo too.
|
||||||
if( ! $logo_url )
|
if( ! $logo_url )
|
||||||
$classes[] = 'show';
|
$classes[] = 'show';
|
||||||
|
|
||||||
@@ -193,12 +232,13 @@ function trestle_do_logos( $title, $inside, $wrap ) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build the title
|
// Build the title.
|
||||||
$title = genesis_html5() ? sprintf( "<{$wrap} %s>", genesis_attr( 'site-title' ) ) : sprintf( '<%s id="title">%s</%s>', $wrap, $inside, $wrap );
|
$title = genesis_html5() ? sprintf( "<{$wrap} %s>", genesis_attr( 'site-title' ) ) : sprintf( '<%s id="title">%s</%s>', $wrap, $inside, $wrap );
|
||||||
$title .= genesis_html5() ? "{$inside}</{$wrap}>" : '';
|
$title .= genesis_html5() ? "{$inside}</{$wrap}>" : '';
|
||||||
|
|
||||||
// Echo (filtered)
|
// Echo (filtered).
|
||||||
return $title;
|
return $title;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -206,15 +246,18 @@ function trestle_do_logos( $title, $inside, $wrap ) {
|
|||||||
* Navigation
|
* Navigation
|
||||||
===========================================*/
|
===========================================*/
|
||||||
|
|
||||||
add_action( 'init', 'trestle_nav_primary_location' );
|
add_action( 'wp_loaded', 'trestle_nav_primary_location' );
|
||||||
/**
|
/**
|
||||||
* Move primary navigation into the header if need be.
|
* Move primary navigation into the header if need be.
|
||||||
*
|
*
|
||||||
|
* This is hooked on wp_loaded instead of init because for some reason init
|
||||||
|
* won't fire on the customizer preview.
|
||||||
|
*
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*/
|
*/
|
||||||
function trestle_nav_primary_location() {
|
function trestle_nav_primary_location() {
|
||||||
|
|
||||||
if ( 'header' == genesis_get_option( 'trestle_nav_primary_location' ) ) {
|
if ( 'header' == trestle_get_option( 'nav_primary_location' ) ) {
|
||||||
remove_action( 'genesis_after_header', 'genesis_do_nav' );
|
remove_action( 'genesis_after_header', 'genesis_do_nav' );
|
||||||
add_action( 'genesis_header', 'genesis_do_nav', 12 );
|
add_action( 'genesis_header', 'genesis_do_nav', 12 );
|
||||||
}
|
}
|
||||||
@@ -233,7 +276,7 @@ add_filter( 'wp_nav_menu_items', 'trestle_custom_nav_extras', 10, 2 );
|
|||||||
*/
|
*/
|
||||||
function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) {
|
function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) {
|
||||||
|
|
||||||
if ( 'primary' == $menu_args->theme_location && genesis_get_option( 'trestle_custom_nav_extras_text' ) ) {
|
if ( 'primary' == $menu_args->theme_location && trestle_get_option( 'search_in_nav' ) ) {
|
||||||
return $nav_items . '<li class="right custom">' . get_search_form( false ) . '</li>';
|
return $nav_items . '<li class="right custom">' . get_search_form( false ) . '</li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,69 +299,18 @@ add_filter( 'wp_revisions_to_keep', 'trestle_update_revisions_number', 10, 2 );
|
|||||||
*/
|
*/
|
||||||
function trestle_update_revisions_number( $num ) {
|
function trestle_update_revisions_number( $num ) {
|
||||||
|
|
||||||
$trestle_revisions_number = esc_attr( genesis_get_option( 'trestle_revisions_number' ) );
|
$trestle_revisions_number = esc_attr( trestle_get_option( 'revisions_number' ) );
|
||||||
|
|
||||||
if ( isset( $trestle_revisions_number ) )
|
if ( isset( $trestle_revisions_number ) ) {
|
||||||
return $trestle_revisions_number;
|
return $trestle_revisions_number;
|
||||||
|
}
|
||||||
|
|
||||||
return $num;
|
return $num;
|
||||||
}
|
}
|
||||||
|
|
||||||
add_action( 'the_post', 'trestle_post_info_meta', 5 );
|
|
||||||
/**
|
|
||||||
* Manually controls display of post info/meta for all post types.
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*
|
|
||||||
* @see trestle_set_page_post_type()
|
|
||||||
* @global object $post The current $post object.
|
|
||||||
*/
|
|
||||||
function trestle_post_info_meta() {
|
|
||||||
|
|
||||||
if ( ! is_admin() && in_the_loop() && genesis_get_option( 'trestle_manual_post_info_meta' ) ) {
|
|
||||||
|
|
||||||
global $post;
|
|
||||||
|
|
||||||
// Get post type
|
|
||||||
$post_type = get_post_type( $post->ID );
|
|
||||||
|
|
||||||
// Remove all Post Info & Meta
|
|
||||||
remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
|
|
||||||
remove_action( 'genesis_entry_footer', 'genesis_post_meta' );
|
|
||||||
|
|
||||||
// Single
|
|
||||||
if ( is_singular() ) {
|
|
||||||
$single_info_option = 'trestle_post_info_' . $post_type . '_single';
|
|
||||||
$single_meta_option = 'trestle_post_meta_' . $post_type . '_single';
|
|
||||||
|
|
||||||
// Post Info
|
|
||||||
if ( genesis_get_option( $single_info_option ) )
|
|
||||||
add_action( 'genesis_entry_header', 'genesis_post_info', 12 );
|
|
||||||
|
|
||||||
// Post Meta
|
|
||||||
if ( genesis_get_option( $single_meta_option ) )
|
|
||||||
add_action( 'genesis_entry_footer', 'genesis_post_meta' );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Archive
|
|
||||||
if ( ! is_singular() ) {
|
|
||||||
$archive_info_option = 'trestle_post_info_' . $post_type . '_archive';
|
|
||||||
$archive_meta_option = 'trestle_post_meta_' . $post_type . '_archive';
|
|
||||||
|
|
||||||
// Post Info
|
|
||||||
if ( genesis_get_option( $archive_info_option ) )
|
|
||||||
add_action( 'genesis_entry_header', 'genesis_post_info', 12 );
|
|
||||||
|
|
||||||
// Post Meta
|
|
||||||
if ( genesis_get_option( $archive_meta_option ) )
|
|
||||||
add_action( 'genesis_entry_footer', 'genesis_post_meta' );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
add_filter( 'genesis_get_image_default_args', 'trestle_featured_image_fallback' );
|
add_filter( 'genesis_get_image_default_args', 'trestle_featured_image_fallback' );
|
||||||
/**
|
/**
|
||||||
* Unset Genesis default featured image fallback of 'first-attached'
|
* Unset Genesis default featured image fallback of 'first-attached'.
|
||||||
*
|
*
|
||||||
* This function prevents Genesis' default behavior of displaying
|
* This function prevents Genesis' default behavior of displaying
|
||||||
* the 'first-attached' image as a post's featured image (in archive)
|
* the 'first-attached' image as a post's featured image (in archive)
|
||||||
@@ -326,8 +318,8 @@ add_filter( 'genesis_get_image_default_args', 'trestle_featured_image_fallback'
|
|||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*
|
*
|
||||||
* @param array $args Default Genesis image args
|
* @param array $args Default Genesis image args.
|
||||||
* @return array Updated image args
|
* @return array Updated image args.
|
||||||
*/
|
*/
|
||||||
function trestle_featured_image_fallback( $args ) {
|
function trestle_featured_image_fallback( $args ) {
|
||||||
|
|
||||||
@@ -354,8 +346,8 @@ add_filter( 'the_content_more_link', 'trestle_read_more_link' );
|
|||||||
*/
|
*/
|
||||||
function trestle_read_more_link( $default_text ) {
|
function trestle_read_more_link( $default_text ) {
|
||||||
|
|
||||||
// Get Trestle custom "read more" link text
|
// Get Trestle custom "read more" link text.
|
||||||
$custom_text = esc_attr( genesis_get_option( 'trestle_read_more_text' ) );
|
$custom_text = esc_attr( trestle_get_option( 'read_more_text' ) );
|
||||||
|
|
||||||
if ( $custom_text ) {
|
if ( $custom_text ) {
|
||||||
return '… <a class="more-link" title="' . $custom_text . '" href="' . get_permalink() . '">' . $custom_text . '</a>';
|
return '… <a class="more-link" title="' . $custom_text . '" href="' . get_permalink() . '">' . $custom_text . '</a>';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Trestle shortcodes
|
* Trestle shortcodes.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*
|
*
|
||||||
@@ -11,9 +11,9 @@
|
|||||||
* Shortcodes
|
* Shortcodes
|
||||||
===========================================*/
|
===========================================*/
|
||||||
|
|
||||||
add_filter('the_content', 'trestle_shortcode_empty_paragraph_fix');
|
add_filter( 'the_content', 'trestle_shortcode_empty_paragraph_fix' );
|
||||||
/**
|
/**
|
||||||
* Fix for empty <p> tags around shortcodes
|
* Fix for empty <p> tags around shortcodes.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*
|
*
|
||||||
@@ -21,23 +21,22 @@ add_filter('the_content', 'trestle_shortcode_empty_paragraph_fix');
|
|||||||
*
|
*
|
||||||
* @return string Updated content.
|
* @return string Updated content.
|
||||||
*/
|
*/
|
||||||
function trestle_shortcode_empty_paragraph_fix( $content )
|
function trestle_shortcode_empty_paragraph_fix( $content ) {
|
||||||
{
|
|
||||||
$array = array (
|
$array = array (
|
||||||
'<p>[' => '[',
|
'<p>[' => '[',
|
||||||
']</p>' => ']',
|
']</p>' => ']',
|
||||||
']<br />' => ']'
|
']<br />' => ']'
|
||||||
);
|
);
|
||||||
|
|
||||||
$content = strtr($content, $array);
|
$content = strtr( $content, $array );
|
||||||
|
|
||||||
return $content;
|
return $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
add_shortcode( 'col', 'trestle_column' );
|
add_shortcode( 'col', 'trestle_column' );
|
||||||
/**
|
/**
|
||||||
* Columns
|
* Columns.
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [col class="one-half first no-list-margin"] Contents [/col]
|
* [col class="one-half first no-list-margin"] Contents [/col]
|
||||||
*
|
*
|
||||||
@@ -57,12 +56,10 @@ function trestle_column( $atts, $content = null ) {
|
|||||||
return '<div class="col ' . $class . '">' . do_shortcode( $content ) . '</div>';
|
return '<div class="col ' . $class . '">' . do_shortcode( $content ) . '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
add_shortcode( 'button', 'trestle_button' );
|
add_shortcode( 'button', 'trestle_button' );
|
||||||
/**
|
/**
|
||||||
* Button
|
* Button.
|
||||||
*
|
*
|
||||||
* Example: [button href="url" title="title" target="target" class="class"]Text[/button]
|
* Example: [button href="url" title="title" target="target" class="class"]Text[/button]
|
||||||
*
|
*
|
||||||
* @param array $atts Shortcode attributes.
|
* @param array $atts Shortcode attributes.
|
||||||
@@ -79,10 +76,9 @@ function trestle_button( $atts, $content = null ) {
|
|||||||
return '<a class="button ' . $class . '" href="' . $href . '" title="' . $title . '" target="' . $target . '">' . do_shortcode( $content ) . '</a>';
|
return '<a class="button ' . $class . '" href="' . $href . '" title="' . $title . '" target="' . $target . '">' . do_shortcode( $content ) . '</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
add_shortcode( 'date', 'trestle_date' );
|
add_shortcode( 'date', 'trestle_date' );
|
||||||
/**
|
/**
|
||||||
* Date
|
* Date.
|
||||||
*
|
*
|
||||||
* Example: [date format="M d, Y"]
|
* Example: [date format="M d, Y"]
|
||||||
*
|
*
|
||||||
@@ -93,10 +89,10 @@ add_shortcode( 'date', 'trestle_date' );
|
|||||||
function trestle_date( $atts ) {
|
function trestle_date( $atts ) {
|
||||||
extract( shortcode_atts( array(
|
extract( shortcode_atts( array(
|
||||||
'format' => 'M d, Y',
|
'format' => 'M d, Y',
|
||||||
), $format ) );
|
), $atts ) );
|
||||||
|
|
||||||
if ( ! $format ) {
|
if ( ! $format ) {
|
||||||
$format = 'M d, Y';
|
$format = 'M d, Y';
|
||||||
}
|
}
|
||||||
|
|
||||||
return date( $format );
|
return date( $format );
|
||||||
@@ -104,8 +100,8 @@ function trestle_date( $atts ) {
|
|||||||
|
|
||||||
add_shortcode( 'blockquote', 'trestle_blockquote_shortcode' );
|
add_shortcode( 'blockquote', 'trestle_blockquote_shortcode' );
|
||||||
/**
|
/**
|
||||||
* Blockquote
|
* Blockquote.
|
||||||
*
|
*
|
||||||
* Example: [blockquote citation=""]Content[/blockquote]
|
* Example: [blockquote citation=""]Content[/blockquote]
|
||||||
*
|
*
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
@@ -115,28 +111,27 @@ add_shortcode( 'blockquote', 'trestle_blockquote_shortcode' );
|
|||||||
* @return string Shortcode output.
|
* @return string Shortcode output.
|
||||||
*/
|
*/
|
||||||
function trestle_blockquote_shortcode( $atts, $content = null ) {
|
function trestle_blockquote_shortcode( $atts, $content = null ) {
|
||||||
|
$atts = shortcode_atts( array(
|
||||||
$atts = shortcode_atts( array(
|
'citation' => '',
|
||||||
'citation' => '',
|
), $atts );
|
||||||
), $atts );
|
|
||||||
|
|
||||||
ob_start(); ?>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
|
|
||||||
<?php if ( $content ) : ?>
|
|
||||||
<?php echo $content; ?>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<?php if ( $atts['citation'] ) : ?>
|
|
||||||
<cite>- <?php echo $atts['citation']; ?></cite>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
</blockquote>
|
ob_start(); ?>
|
||||||
|
|
||||||
<?php
|
|
||||||
|
|
||||||
$output = ob_get_clean();
|
|
||||||
|
|
||||||
return $output;
|
<blockquote>
|
||||||
|
|
||||||
|
<?php if ( $content ) : ?>
|
||||||
|
<?php echo $content; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ( $atts['citation'] ) : ?>
|
||||||
|
<cite>- <?php echo $atts['citation']; ?></cite>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$output = ob_get_clean();
|
||||||
|
|
||||||
|
return $output;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trestle widget area registration and functionality
|
* Trestle widget area registration and functionality.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*
|
*
|
||||||
* @package Trestle
|
* @package Trestle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//add_action( 'widgets_init', 'trestle_register_widget_areas' );
|
//add_action( 'widgets_init', 'trestle_register_widget_areas' );
|
||||||
/**
|
/**
|
||||||
* Register custom widget areas
|
* Register custom widget areas.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -308,6 +308,9 @@ class Better_Font_Awesome_Library {
|
|||||||
// Parse the initialization args with the defaults.
|
// Parse the initialization args with the defaults.
|
||||||
$this->parse_args( $args );
|
$this->parse_args( $args );
|
||||||
|
|
||||||
|
// Setup root URL, which differs for plugins vs. themes.
|
||||||
|
$this->setup_root_url();
|
||||||
|
|
||||||
// Set fallback stylesheet directory URL and path.
|
// Set fallback stylesheet directory URL and path.
|
||||||
$this->setup_fallback_data();
|
$this->setup_fallback_data();
|
||||||
|
|
||||||
@@ -345,6 +348,45 @@ class Better_Font_Awesome_Library {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set up root URL for library, which differs for plugins vs. themes.
|
||||||
|
*
|
||||||
|
* @since 1.0.4
|
||||||
|
*/
|
||||||
|
function setup_root_url() {
|
||||||
|
|
||||||
|
// Get BFA directory and theme root directory paths.
|
||||||
|
$bfa_directory = dirname(__FILE__);
|
||||||
|
$theme_directory = get_stylesheet_directory();
|
||||||
|
$plugin_dir = plugin_dir_url( __FILE__ );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if we're inside a theme or plugin.
|
||||||
|
*
|
||||||
|
* If we're in a theme, than plugin_dir_url() will return a
|
||||||
|
* funky URL that includes the actual file path (e.g.
|
||||||
|
* /srv/www/site_name/wp-content/...)
|
||||||
|
*/
|
||||||
|
$is_theme = false;
|
||||||
|
if ( strpos( $plugin_dir, $bfa_directory ) !== false ) {
|
||||||
|
$is_theme = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// First check if we're inside a theme.
|
||||||
|
if ( $is_theme ) {
|
||||||
|
|
||||||
|
// Get relative BFA directory by removing theme root directory path.
|
||||||
|
$bfa_rel_path = str_replace( $theme_directory, '', $bfa_directory );
|
||||||
|
$this->root_url = trailingslashit( get_stylesheet_directory_uri() . $bfa_rel_path );
|
||||||
|
|
||||||
|
} else { // Otherwise we're inside a plugin.
|
||||||
|
|
||||||
|
$this->root_url = trailingslashit( plugin_dir_url( __FILE__ ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set up data for the local fallback version of Font Awesome.
|
* Set up data for the local fallback version of Font Awesome.
|
||||||
*
|
*
|
||||||
@@ -366,7 +408,7 @@ class Better_Font_Awesome_Library {
|
|||||||
|
|
||||||
// Set fallback path and URL.
|
// Set fallback path and URL.
|
||||||
$this->fallback_data['path'] = $directory_path . 'css/font-awesome' . $this->get_min_suffix() . '.css';
|
$this->fallback_data['path'] = $directory_path . 'css/font-awesome' . $this->get_min_suffix() . '.css';
|
||||||
$this->fallback_data['url'] = plugins_url( $this->fallback_data['directory'] . 'css/font-awesome' . $this->get_min_suffix() . '.css', dirname( $directory_path ) );
|
$this->fallback_data['url'] = $this->root_url . $this->fallback_data['directory'] . 'css/font-awesome' . $this->get_min_suffix() . '.css';
|
||||||
|
|
||||||
// Get the fallback version based on package.json.
|
// Get the fallback version based on package.json.
|
||||||
$fallback_json_file_path = $directory_path . 'package.json';
|
$fallback_json_file_path = $directory_path . 'package.json';
|
||||||
@@ -965,9 +1007,9 @@ class Better_Font_Awesome_Library {
|
|||||||
* being used.
|
* being used.
|
||||||
*/
|
*/
|
||||||
if ( version_compare( $tinymce_version, '4000', '>=' ) ) {
|
if ( version_compare( $tinymce_version, '4000', '>=' ) ) {
|
||||||
$plugin_array['bfa_plugin'] = plugins_url( 'js/tinymce-icons.js', __FILE__ );
|
$plugin_array['bfa_plugin'] = $this->root_url . 'js/tinymce-icons.js';
|
||||||
} else {
|
} else {
|
||||||
$plugin_array['bfa_plugin'] = plugins_url( 'js/tinymce-icons-old.js', __FILE__ );
|
$plugin_array['bfa_plugin'] = $this->root_url . 'js/tinymce-icons-old.js';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $plugin_array;
|
return $plugin_array;
|
||||||
@@ -1013,7 +1055,7 @@ class Better_Font_Awesome_Library {
|
|||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function register_custom_admin_css() {
|
public function register_custom_admin_css() {
|
||||||
wp_enqueue_style( self::SLUG . '-admin-styles', plugins_url( 'css/admin-styles.css', __FILE__ ) );
|
wp_enqueue_style( self::SLUG . '-admin-styles', $this->root_url . 'css/admin-styles.css' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
Description: Trestle is a Genesis child theme for developers based on the default <a href="http://www.genesisframework.com/">Genesis 2.0 Sample Theme</a>. It features mobile first CSS, helpful theme options, and lots more tools to support your development process.
|
Description: Trestle is a Genesis child theme for developers based on the default <a href="http://www.genesisframework.com/">Genesis 2.0 Sample Theme</a>. It features mobile first CSS, helpful theme options, and lots more tools to support your development process.
|
||||||
Author: MIGHTYminnow
|
Author: MIGHTYminnow
|
||||||
Author URI: http://www.mightyminnow.com/
|
Author URI: http://www.mightyminnow.com/
|
||||||
Version: 1.1.0
|
Version: 2.0.1
|
||||||
Tags: black, gray, red, white, light, one-column, two-columns, three-columns, left-sidebar, right-sidebar, fluid-layout, responsive-layout, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, front-page-post-form, full-width-template, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, genesis, mobile-first, responsive, clean
|
Tags: black, gray, red, white, light, one-column, two-columns, three-columns, left-sidebar, right-sidebar, fluid-layout, responsive-layout, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, front-page-post-form, full-width-template, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, genesis, mobile-first, responsive, clean
|
||||||
Text Domain: trestle
|
Text Domain: trestle
|
||||||
GitHub Theme URI: mickeykay/trestle
|
GitHub Theme URI: MIGHTYminnow/trestle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Table of Contents
|
/* Table of Contents
|
||||||
@@ -151,8 +151,11 @@ body {
|
|||||||
line-height: 1.625;
|
line-height: 1.625;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Used in the editor */
|
||||||
body.mce-content-body {
|
body.mce-content-body {
|
||||||
width: 100%; /* Used in the editor */
|
width: auto;
|
||||||
|
margin: 10px;
|
||||||
|
float: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.bubble {
|
body.bubble {
|
||||||
@@ -2023,6 +2026,19 @@ Site Footer
|
|||||||
General Components
|
General Components
|
||||||
---------------------------------------------------------------------------------------------------- */
|
---------------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* jQuery UI
|
||||||
|
--------------------------------------------- */
|
||||||
|
|
||||||
|
/* Datepicker */
|
||||||
|
|
||||||
|
table.ui-datepicker-calendar {
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-datepicker select {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
/* Search Form
|
/* Search Form
|
||||||
--------------------------------------------- */
|
--------------------------------------------- */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user