26 Commits

Author SHA1 Message Date
MickeyKay 65d0ea44a6 Update README.md. 2015-05-11 17:18:36 -07:00
MickeyKay d6115d0fae Update README.md. 2015-05-11 17:18:02 -07:00
MickeyKay 880e8c6f50 Bump version to 2.0.0! Woot! 2015-05-11 17:17:19 -07:00
MickeyKay dfe92cbbf3 Fix merge conflict. 2015-05-11 17:16:18 -07:00
MickeyKay 2b989d7424 Fix merge conflict. 2015-05-11 17:15:53 -07:00
MickeyKay 8a6adb7400 Fix whitespace. 2015-05-11 17:13:51 -07:00
MickeyKay 7e666d0bb9 Fixed merge conflicts from feature/trestle-settings. 2015-05-11 17:11:29 -07:00
MickeyKay 1bb6537455 Complete switch over to Trestle settings. 2015-05-11 17:09:22 -07:00
MickeyKay c7055b91ac Merge branch 'dev' of github.com:MickeyKay/trestle into dev 2015-04-30 16:12:35 -07:00
MickeyKay 67996d4e70 Fix whitespace. 2015-04-30 16:11:39 -07:00
Braad 7d1b5573a1 Fix control name for search_in_nav 2015-04-30 15:11:54 -07:00
Braad 3dae9f0443 Formatting 2015-04-30 14:52:22 -07:00
Braad c8667ce065 Better sanitization of options in the Customizer, other fixes 2015-04-30 14:49:46 -07:00
Braad 335594dbd2 Fix saving of default options 2015-04-30 13:00:21 -07:00
Braad d77a0a7440 First pass at switching to trestle-settings and some inline documentation cleanup 2015-04-30 12:24:30 -07:00
Mickey Kay 1b8e9a7e43 Merge pull request #8 from BraadMartin/dev
Fix bug in the [date] shortcode and improve formatting
2015-04-30 10:11:31 -07:00
Braad 39a1e729dd Fix bug in the date shortcode and minor formatting improvements to shortcodes.php 2015-04-29 14:06:10 -07:00
Braad 051fdfb0d1 Fix bug in the date shortcode and minor formatting improvements to shortcodes.php 2015-04-29 13:48:50 -07:00
Braad 6d34078f94 Syncing with dev branch 2015-04-21 12:05:22 -07:00
MickeyKay f8bd7fc700 Add equal height columns to plugin list. 2015-04-03 09:39:36 -07:00
MickeyKay 0b06acc857 Switch recommended FancyBox plugin. 2015-03-31 12:24:48 -07:00
MickeyKay 6abe714a1e Merge dev-test branch. 2015-03-23 15:49:05 -07:00
MickeyKay eac35762fe Update styles to include better input styleing. 2015-02-19 14:52:32 -08:00
Mickey Kay b0506281e8 Update README.md 2014-12-18 10:02:48 -08:00
Mickey Kay eae7e220d9 Update README.md 2014-12-18 09:36:55 -08:00
Mickey Kay 1ebd6ff5df Update README.md 2014-12-18 09:36:00 -08:00
8 changed files with 468 additions and 643 deletions
+3 -20
View File
@@ -1,5 +1,5 @@
Trestle Trestle
======= ---------------------
### A handy boilerplate child theme for serious Genesis developers. ### A handy boilerplate child theme for serious Genesis developers.
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/MickeyKay/trestle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Gitter](https://badges.gitter.im/Join Chat.svg)](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
View File
@@ -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.0' );
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 );
} }
+79 -44
View File
@@ -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&nbsp;More&nbsp;&raquo;', '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.
@@ -17,48 +87,7 @@ function trestle_admin_actions() {
// Include the main stylesheet in the editor // 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&nbsp;More&nbsp;&raquo;', '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 +124,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 +149,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 +251,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';
/** /**
-147
View File
@@ -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
View File
@@ -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',
) )
+93 -101
View File
@@ -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 '&hellip;&nbsp;<a class="more-link" title="' . $custom_text . '" href="' . get_permalink() . '">' . $custom_text . '</a>'; return '&hellip;&nbsp;<a class="more-link" title="' . $custom_text . '" href="' . get_permalink() . '">' . $custom_text . '</a>';
+38 -43
View File
@@ -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;
} }
+4 -4
View File
@@ -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
*/ */