mirror of
https://github.com/10h30/trestle.git
synced 2026-06-05 15:09:35 +09:00
+1
-4
@@ -30,9 +30,6 @@ require_once dirname( __FILE__ ) . '/includes/widget-areas/widget-areas.php';
|
||||
// Plugin activation class.
|
||||
require_once dirname( __FILE__ ) . '/lib/class-tgm-plugin-activation.php';
|
||||
|
||||
// Better Font Awesome Library.
|
||||
require_once dirname( __FILE__ ) . '/lib/better-font-awesome-library/better-font-awesome-library.php';
|
||||
|
||||
// Dev utility functions.
|
||||
require_once dirname( __FILE__ ) . '/includes/utilities/utilities.php';
|
||||
|
||||
@@ -52,7 +49,7 @@ function trestle_theme_setup() {
|
||||
// Child theme definitions (do not remove).
|
||||
define( 'TRESTLE_THEME_NAME', 'Trestle' );
|
||||
define( 'TRESTLE_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' );
|
||||
define( 'TRESTLE_THEME_VERSION', '2.1.1' );
|
||||
define( 'TRESTLE_THEME_VERSION', '2.2.0' );
|
||||
define( 'TRESTLE_SETTINGS_FIELD', 'trestle-settings' );
|
||||
|
||||
// Setup default theme settings.
|
||||
|
||||
+47
-14
@@ -18,20 +18,20 @@ 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',
|
||||
'mobile_nav_toggle' => 'small-icon',
|
||||
'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,
|
||||
'layout' => 'solid',
|
||||
'logo_id' => '',
|
||||
'logo_id_mobile' => '',
|
||||
'favicon_url' => '',
|
||||
'nav_primary_location' => 'full',
|
||||
'mobile_nav_toggle' => 'small-icon',
|
||||
'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.
|
||||
@@ -95,6 +95,33 @@ function trestle_admin_actions() {
|
||||
|
||||
}
|
||||
|
||||
add_filter( 'tiny_mce_before_init', 'trestle_tiny_mce_before_init' );
|
||||
/**
|
||||
* Add custom classes to the body of TinyMCE previews.
|
||||
*
|
||||
* @since 2.2.0
|
||||
*/
|
||||
function trestle_tiny_mce_before_init( $init_array ) {
|
||||
|
||||
global $post;
|
||||
|
||||
$screen = get_current_screen();
|
||||
|
||||
// If we're on an edit screen, add an appropriate 'post-id-XX' or 'page-id-XX'.
|
||||
if ( is_object( $screen ) && 'edit' == $screen->parent_base ) {
|
||||
|
||||
// Custom post types always use 'post', so we only need to handle pages.
|
||||
$post_type = ( 'page' == $post->post_type ) ? 'page' : 'post';
|
||||
|
||||
$init_array['body_class'] .= sprintf( ' %s-id-%s',
|
||||
$post_type,
|
||||
$post->ID
|
||||
);
|
||||
}
|
||||
|
||||
return $init_array;
|
||||
}
|
||||
|
||||
add_action( 'tgmpa_register', 'trestle_register_required_plugins' );
|
||||
/**
|
||||
* Loads required & recommended plugins.
|
||||
@@ -183,6 +210,12 @@ function trestle_register_required_plugins() {
|
||||
'required' => false,
|
||||
),
|
||||
|
||||
array(
|
||||
'name' => 'RICG Responsive Images',
|
||||
'slug' => 'ricg-responsive-images',
|
||||
'required' => false,
|
||||
),
|
||||
|
||||
array(
|
||||
'name' => 'Widget Context',
|
||||
'slug' => 'widget-context',
|
||||
|
||||
+135
-132
@@ -25,8 +25,8 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_section(
|
||||
'trestle_settings_section',
|
||||
array(
|
||||
'title' => __( 'Trestle Settings', 'trestle' ),
|
||||
'priority' => 160,
|
||||
'title' => __( 'Trestle Settings', 'trestle' ),
|
||||
'priority' => 160,
|
||||
)
|
||||
);
|
||||
|
||||
@@ -34,65 +34,67 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[layout]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'layout' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'layout' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_layout_control',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[layout]',
|
||||
'label' => __( 'Layout', 'trestle' ),
|
||||
'type' => 'radio',
|
||||
'choices' => array(
|
||||
'bubble' => __( 'Bubble', 'trestle' ),
|
||||
'solid' => __( 'Solid', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[layout]',
|
||||
'label' => __( 'Layout', 'trestle' ),
|
||||
'type' => 'radio',
|
||||
'choices' => array(
|
||||
'bubble' => __( 'Bubble', 'trestle' ),
|
||||
'solid' => __( 'Solid', 'trestle' ),
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Upload a logo.
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[logo_url]',
|
||||
'trestle-settings[logo_id]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'logo_url' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'esc_url_raw',
|
||||
'default' => trestle_get_option( 'logo_id' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'absint',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
new WP_Customize_Image_Control(
|
||||
new WP_Customize_Media_Control(
|
||||
$wp_customize,
|
||||
'trestle_logo_control',
|
||||
array(
|
||||
'label' => __( 'Upload a logo', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[logo_url]',
|
||||
'label' => __( 'Upload a logo', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[logo_id]',
|
||||
'mime_type' => 'image',
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Upload a mobile logo.
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[logo_url_mobile]',
|
||||
'trestle-settings[logo_id_mobile]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'logo_url_mobile' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'esc_url_raw',
|
||||
'default' => trestle_get_option( 'logo_id_mobile' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'absint',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
new WP_Customize_Image_Control(
|
||||
new WP_Customize_Media_Control(
|
||||
$wp_customize,
|
||||
'trestle_mobile_logo_control',
|
||||
array(
|
||||
'label' => __( 'Upload a mobile logo', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[logo_url_mobile]',
|
||||
'label' => __( 'Upload a mobile logo', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[logo_id_mobile]',
|
||||
'mime_type' => 'image',
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -101,10 +103,10 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[favicon_url]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'favicon_url' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'esc_url_raw',
|
||||
'default' => trestle_get_option( 'favicon_url' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'esc_url_raw',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
@@ -112,9 +114,9 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize,
|
||||
'trestle_favicon_control',
|
||||
array(
|
||||
'label' => __( 'Upload a favicon', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[favicon_url]',
|
||||
'label' => __( 'Upload a favicon', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[favicon_url]',
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -123,21 +125,21 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[nav_primary_location]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'nav_primary_location' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'nav_primary_location' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_nav_primary_location_control',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[nav_primary_location]',
|
||||
'label' => __( 'Menu style', 'trestle' ),
|
||||
'type' => 'select',
|
||||
'choices' => array(
|
||||
'full' => __( 'Full Width', 'trestle' ),
|
||||
'header' => __( 'Header Right', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[nav_primary_location]',
|
||||
'label' => __( 'Menu style', 'trestle' ),
|
||||
'type' => 'select',
|
||||
'choices' => array(
|
||||
'full' => __( 'Full Width', 'trestle' ),
|
||||
'header' => __( 'Header Right', 'trestle' ),
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -146,9 +148,9 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[mobile_nav_toggle]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'mobile_nav_toggle' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'mobile_nav_toggle' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
@@ -159,8 +161,8 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
'label' => __( 'Mobile Menu Toggle', 'trestle' ),
|
||||
'type' => 'select',
|
||||
'choices' => array(
|
||||
'small-icon' => __( 'Small Icon', 'trestle' ),
|
||||
'big-button' => __( 'Big Button', 'trestle' ),
|
||||
'small-icon' => __( 'Small Icon', 'trestle' ),
|
||||
'big-button' => __( 'Big Button', 'trestle' ),
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -169,9 +171,9 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[search_in_nav]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'search_in_nav' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'search_in_nav' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
@@ -180,7 +182,7 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[search_in_nav]',
|
||||
'label' => __( 'Add search to mobile navigation', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
'type' => 'checkbox',
|
||||
)
|
||||
);
|
||||
|
||||
@@ -188,18 +190,18 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[read_more_text]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'read_more_text' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'wp_kses_post',
|
||||
'default' => trestle_get_option( 'read_more_text' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'wp_kses_post',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_read_more_text_control',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[read_more_text]',
|
||||
'label' => __( 'Custom read more link text', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[read_more_text]',
|
||||
'label' => __( 'Custom read more link text', 'trestle' ),
|
||||
)
|
||||
);
|
||||
|
||||
@@ -207,31 +209,32 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[revisions_number]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'revisions_number' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'revisions_number' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'sanitize_callback' => 'absint',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_revisions_number_control',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[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',
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[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',
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -240,26 +243,26 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[footer_widgets_number]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'footer_widgets_number' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'footer_widgets_number' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_footer_widgets_number_control',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[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',
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[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',
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -268,17 +271,17 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[link_icons_title]',
|
||||
array(
|
||||
'default' => '',
|
||||
'type' => 'option',
|
||||
'default' => '',
|
||||
'type' => 'option',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_link_icons_title',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[link_icons_title]',
|
||||
'label' => __( 'Icon links', 'trestle' ),
|
||||
'type' => 'hidden',
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[link_icons_title]',
|
||||
'label' => __( 'Icon links', 'trestle' ),
|
||||
'type' => 'hidden',
|
||||
)
|
||||
);
|
||||
|
||||
@@ -286,18 +289,18 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[external_link_icons]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'external_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'external_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_external_link_icons',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[external_link_icons]',
|
||||
'label' => __( 'Add icons to external links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[external_link_icons]',
|
||||
'label' => __( 'Add icons to external links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
)
|
||||
);
|
||||
|
||||
@@ -305,18 +308,18 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[email_link_icons]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'email_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'email_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_email_link_icons',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[email_link_icons]',
|
||||
'label' => __( 'Add icons to email links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[email_link_icons]',
|
||||
'label' => __( 'Add icons to email links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
)
|
||||
);
|
||||
|
||||
@@ -324,18 +327,18 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[pdf_link_icons]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'pdf_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'pdf_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_pdf_link_icons',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[pdf_link_icons]',
|
||||
'label' => __( 'Add icons to .pdf links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[pdf_link_icons]',
|
||||
'label' => __( 'Add icons to .pdf links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
)
|
||||
);
|
||||
|
||||
@@ -343,18 +346,18 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize->add_setting(
|
||||
'trestle-settings[doc_link_icons]',
|
||||
array(
|
||||
'default' => trestle_get_option( 'doc_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => trestle_get_option( 'doc_link_icons' ),
|
||||
'type' => 'option',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_doc_link_icons',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[doc_link_icons]',
|
||||
'label' => __( 'Add icons to .doc links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'trestle-settings[doc_link_icons]',
|
||||
'label' => __( 'Add icons to .doc links', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -55,6 +55,9 @@ add_action( 'init', 'trestle_load_bfa' );
|
||||
*/
|
||||
function trestle_load_bfa() {
|
||||
|
||||
// Better Font Awesome Library
|
||||
require_once trailingslashit( get_stylesheet_directory() ) . 'lib/better-font-awesome-library/better-font-awesome-library.php';
|
||||
|
||||
// Set the library initialization args.
|
||||
$args = array(
|
||||
'version' => 'latest',
|
||||
@@ -192,7 +195,7 @@ function trestle_body_classes( $classes ) {
|
||||
}
|
||||
|
||||
// Add logo class.
|
||||
if ( trestle_get_option( 'logo_url' ) || trestle_get_option( 'logo_url_mobile' ) ) {
|
||||
if ( trestle_get_option( 'logo_id' ) || trestle_get_option( 'logo_id_mobile' ) ) {
|
||||
$classes[] = 'has-logo';
|
||||
}
|
||||
|
||||
@@ -213,46 +216,59 @@ add_filter( 'genesis_seo_title', 'trestle_do_logos', 10, 3 );
|
||||
*/
|
||||
function trestle_do_logos( $title, $inside, $wrap ) {
|
||||
|
||||
$logo_url = trestle_get_option( 'logo_url' );
|
||||
$logo_url_mobile = trestle_get_option( 'logo_url_mobile' );
|
||||
$logo_id = trestle_get_option( 'logo_id' );
|
||||
$logo_id_mobile = trestle_get_option( 'logo_id_mobile' );
|
||||
$logo_html = '';
|
||||
|
||||
// Regular logo.
|
||||
if ( $logo_url ) {
|
||||
if ( $logo_id ) {
|
||||
|
||||
// Default logo class.
|
||||
$classes = array('logo-full');
|
||||
// Default logo classes.
|
||||
$classes = array(
|
||||
'logo',
|
||||
'logo-full'
|
||||
);
|
||||
|
||||
// If no mobile logo is specified, make regular logo act as mobile logo too.
|
||||
if( ! $logo_url_mobile )
|
||||
if( ! $logo_id_mobile ) {
|
||||
$classes[] = 'show';
|
||||
}
|
||||
|
||||
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />',
|
||||
implode(' ', $classes),
|
||||
esc_attr( get_bloginfo( 'name' ) ),
|
||||
$logo_url
|
||||
// Prepare the classes.
|
||||
$logo_attr = array(
|
||||
'class' => implode( $classes, ' ' ),
|
||||
);
|
||||
|
||||
// Build the <img> tag.
|
||||
$logo_html .= wp_get_attachment_image( $logo_id, 'full', false, $logo_attr );
|
||||
|
||||
}
|
||||
|
||||
// Mobile logo.
|
||||
if ( $logo_url_mobile ) {
|
||||
if ( $logo_id_mobile ) {
|
||||
|
||||
// Default mobile logo class.
|
||||
$classes = array('logo-mobile');
|
||||
$classes = array(
|
||||
'logo',
|
||||
'logo-mobile'
|
||||
);
|
||||
|
||||
// If no regular logo is specified, make mobile logo act as regular logo too.
|
||||
if( ! $logo_url )
|
||||
if( ! $logo_id )
|
||||
$classes[] = 'show';
|
||||
|
||||
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />',
|
||||
implode(' ', $classes),
|
||||
esc_attr( get_bloginfo( 'name' ) ),
|
||||
$logo_url_mobile
|
||||
// Prepare the classes.
|
||||
$logo_attr = array(
|
||||
'class' => implode( $classes, ' ' ),
|
||||
);
|
||||
|
||||
// Build the <img> tag.
|
||||
$logo_html .= wp_get_attachment_image( $logo_id_mobile, 'full', false, $logo_attr );
|
||||
|
||||
}
|
||||
|
||||
if ( $logo_html ) {
|
||||
$inside .= sprintf( '<a href="%s" title="%s">%s</a>',
|
||||
$inside .= sprintf( '<a href="%s" title="%s" class="logos">%s</a>',
|
||||
trailingslashit( home_url() ),
|
||||
esc_attr( get_bloginfo( 'name' ) ),
|
||||
$logo_html
|
||||
@@ -315,6 +331,26 @@ function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) {
|
||||
* Posts & Pages
|
||||
===========================================*/
|
||||
|
||||
add_filter( 'post_class', 'trestle_post_classes' );
|
||||
/**
|
||||
* Add extra classes to posts in certain situations.
|
||||
*
|
||||
* @since 2.2.0
|
||||
*
|
||||
* @param array $classes Post classes.
|
||||
* @return array Updated post classes.
|
||||
*/
|
||||
function trestle_post_classes( $classes ) {
|
||||
|
||||
// If post doesn't have a featured image.
|
||||
if ( ! has_post_thumbnail() ) {
|
||||
$classes[] = 'no-featured-image';
|
||||
}
|
||||
|
||||
return $classes;
|
||||
|
||||
}
|
||||
|
||||
add_filter( 'wp_revisions_to_keep', 'trestle_update_revisions_number', 10, 2 );
|
||||
/**
|
||||
* Sets the number of post revisions.
|
||||
@@ -382,3 +418,68 @@ function trestle_read_more_link( $default_text ) {
|
||||
return $default_text;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*===========================================
|
||||
* Helper Functions
|
||||
===========================================*/
|
||||
|
||||
/**
|
||||
* Check if image has specified image size.
|
||||
*
|
||||
* @since 2.2.0
|
||||
*
|
||||
* @param int $image_id ID of image to check.
|
||||
* @param string $image_size Slug of image size to check for.
|
||||
*
|
||||
* @return true|false Whether or not the image has the specified size generated.
|
||||
*/
|
||||
function trestle_image_has_size( $image_id, $image_size = null ) {
|
||||
|
||||
global $_wp_additional_image_sizes;
|
||||
|
||||
// Return with error if no image_size is specified.
|
||||
if ( ! $image_size ) {
|
||||
return new WP_Error( 'no_image_size_specified', __( 'Please specify an image size.', 'trestle' ) );
|
||||
}
|
||||
|
||||
// Get the attributes for the specified image size.
|
||||
$image_size_atts = $_wp_additional_image_sizes[ $image_size ];
|
||||
|
||||
// Get data for specified image ID and size.
|
||||
$img_data = wp_get_attachment_image_src( $image_id, $image_size );
|
||||
|
||||
// Check if the dimensions match.
|
||||
if ( $img_data[1] == $image_size_atts['width'] && $img_data[2] == $image_size_atts['height'] ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if post is, or is a child of, a target post.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @param string $post_id Post ID to check.
|
||||
* @param string $target_id Target post ID to check against.
|
||||
*
|
||||
* @return true|false
|
||||
*/
|
||||
function trestle_is_current_or_descendant_post( $post_id = '', $target_id = '' ) {
|
||||
|
||||
// If the current post is the target post, return true.
|
||||
if ( $post_id == $target_id ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the current post is a descendant of the target post.
|
||||
if ( in_array( $target_id, get_post_ancestors( $post_id ) ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
@@ -107,8 +107,8 @@ jQuery( document ).ready( function( $ ) {
|
||||
var openIcon = '-';
|
||||
|
||||
// Insert the icons into the nav where appropriate.
|
||||
$( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( .current-menu-item, .current_page_item, .current_page_parent, .current_page_ancestor) > a' ).after( '<a class="sub-icon" href="#">' + closedIcon + '</a>' );
|
||||
$( '.nav-primary' ).find( '.genesis-nav-menu .parent.current-menu-item > a, .genesis-nav-menu .parent.current_page_item > a, .genesis-nav-menu .parent.current_page_parent > a, .genesis-nav-menu .parent.current_page_ancestor > a' ).after( '<a class="sub-icon" href="#">' + openIcon + '</a>' );
|
||||
$( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( [class*="current"] ) > a' ).after( '<a class="sub-icon" href="#">' + closedIcon + '</a>' );
|
||||
$( '.nav-primary' ).find( '.genesis-nav-menu .parent[class*="current"] > a' ).after( '<a class="sub-icon" href="#">' + openIcon + '</a>' );
|
||||
|
||||
// Mobile navigation expand/contract functionality.
|
||||
$( '.sub-icon' ).click( function( event ) {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
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 URI: http://www.mightyminnow.com/
|
||||
Version: 2.1.1
|
||||
Version: 2.2.0
|
||||
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
|
||||
GitHub Theme URI: MIGHTYminnow/trestle
|
||||
@@ -129,7 +129,6 @@ input[type="search"] {
|
||||
display: table;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Defaults
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -151,6 +150,10 @@ body {
|
||||
line-height: 1.625;
|
||||
}
|
||||
|
||||
body.bubble {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
/* Used in the editor */
|
||||
body.mce-content-body {
|
||||
width: auto;
|
||||
@@ -158,10 +161,7 @@ body.mce-content-body {
|
||||
float: none;
|
||||
-webkit-font-smoothing: auto !important;
|
||||
font-smoothing: auto !important;
|
||||
}
|
||||
|
||||
body.bubble {
|
||||
background-color: #f5f5f5;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
a,
|
||||
@@ -609,46 +609,6 @@ body .red:hover {
|
||||
border-color: #555;
|
||||
}
|
||||
|
||||
body .blue {
|
||||
background-color: #0971b2;
|
||||
border-color: #0971b2;
|
||||
}
|
||||
|
||||
body .blue:hover {
|
||||
background-color: #333;
|
||||
border-color: #333;
|
||||
}
|
||||
|
||||
body .green {
|
||||
background-color: #00a476;
|
||||
border-color: #00a476;
|
||||
}
|
||||
|
||||
body .green:hover {
|
||||
background-color: #333;
|
||||
border-color: #333;
|
||||
}
|
||||
|
||||
.arrow-right:after,
|
||||
.arrow-left:before {
|
||||
display: inline-block;
|
||||
font-family: FontAwesome;
|
||||
font-weight: normal;
|
||||
font-stretch: normal;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
.arrow-right:after {
|
||||
content: "\00a0\00a0\f0a9";
|
||||
}
|
||||
|
||||
.arrow-left:before {
|
||||
content: "\f0a8\00a0\00a0";
|
||||
}
|
||||
|
||||
/* Tables
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -681,7 +641,6 @@ td {
|
||||
padding: 0.6rem 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Structure and Layout
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -721,7 +680,6 @@ Structure and Layout
|
||||
padding: 20px;
|
||||
padding: 2rem;
|
||||
background-color: transparent;
|
||||
|
||||
}
|
||||
|
||||
.entry,
|
||||
@@ -740,6 +698,7 @@ Structure and Layout
|
||||
|
||||
/* Bubble Layout
|
||||
--------------------------------------------- */
|
||||
|
||||
.bubble .entry,
|
||||
.bubble .sidebar .widget,
|
||||
.bubble .ez-widget-area,
|
||||
@@ -831,7 +790,6 @@ Structure and Layout
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Common Classes
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -908,6 +866,35 @@ img.alignright,
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Text meant only for screen readers. */
|
||||
.screen-reader-text {
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
position: absolute !important;
|
||||
height: 1px;
|
||||
width: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.screen-reader-text:focus {
|
||||
background-color: #f1f1f1;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
|
||||
clip: auto !important;
|
||||
color: #21759b;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-size: 0.875rem;
|
||||
font-weight: bold;
|
||||
height: auto;
|
||||
left: 5px;
|
||||
line-height: normal;
|
||||
padding: 15px 23px 14px;
|
||||
text-decoration: none;
|
||||
top: 5px;
|
||||
width: auto;
|
||||
z-index: 100000; /* Above WP toolbar. */
|
||||
}
|
||||
|
||||
/* Genesis
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -981,7 +968,6 @@ img.alignright,
|
||||
margin-bottom: 2.4rem;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Plugins & Widgets
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -1076,7 +1062,6 @@ Plugins & Widgets
|
||||
margin-bottom: 28px;
|
||||
}
|
||||
|
||||
|
||||
/* Gravity Forms
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1110,7 +1095,7 @@ div.gform_wrapper form .gfield_checkbox li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.gform_wrapper ul.gfield_radio li { /* Prevent radio optoin from being cut off by default GF CSS */
|
||||
div.gform_wrapper ul.gfield_radio li { /* Prevent radio option from being cut off by default GF CSS */
|
||||
padding-left: 1px !important;
|
||||
}
|
||||
|
||||
@@ -1145,7 +1130,6 @@ img#wpstats {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Jetpack - Blog Subscriptions
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1318,7 +1302,6 @@ th a.wpv-header-desc:after {
|
||||
top: auto;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Site Header
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -1375,7 +1358,6 @@ Site Header
|
||||
top: -9999px;
|
||||
}
|
||||
|
||||
|
||||
/* Logo
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1387,7 +1369,6 @@ Site Header
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
|
||||
/* Header Widget Areas
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1406,7 +1387,6 @@ Site Header
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/* Header Toggle Styles
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1587,10 +1567,10 @@ Site Navigation
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #eee;
|
||||
-webkit-transition: opacity .4s ease-in-out;
|
||||
-moz-transition: opacity .4s ease-in-out;
|
||||
-ms-transition: opacity .4s ease-in-out;
|
||||
-o-transition: opacity .4s ease-in-out;
|
||||
transition: opacity .4s ease-in-out;
|
||||
-moz-transition: opacity .4s ease-in-out;
|
||||
-ms-transition: opacity .4s ease-in-out;
|
||||
-o-transition: opacity .4s ease-in-out;
|
||||
transition: opacity .4s ease-in-out;
|
||||
}
|
||||
|
||||
.genesis-nav-menu [class*="current-"] > ul,
|
||||
@@ -1636,7 +1616,6 @@ Site Navigation
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/* Primary Navigation
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1696,7 +1675,6 @@ Site Navigation
|
||||
margin: 0 0 0 0.5em;
|
||||
}
|
||||
|
||||
|
||||
/* Secondary Navigation
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1710,7 +1688,6 @@ Site Navigation
|
||||
color: #111;
|
||||
}
|
||||
|
||||
|
||||
/* Header Navigation
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1737,7 +1714,6 @@ Site Navigation
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Header Primary Navigation
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -1766,7 +1742,6 @@ Site Navigation
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Content Area
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -1846,7 +1821,6 @@ Content Area
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
||||
.archive-pagination li {
|
||||
display: inline;
|
||||
}
|
||||
@@ -1863,7 +1837,6 @@ Content Area
|
||||
padding: 0.8rem 1.2rem;
|
||||
}
|
||||
|
||||
|
||||
.pagination-next a:hover,
|
||||
.pagination-previous a:hover,
|
||||
.archive-pagination li a:hover,
|
||||
@@ -1959,7 +1932,6 @@ li.comment {
|
||||
padding: 2.4rem;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Sidebars
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -2059,7 +2031,6 @@ Footer Widgets
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Site Footer
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -2090,7 +2061,6 @@ Site Footer
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
General Components
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -2120,12 +2090,10 @@ table.ui-datepicker-calendar {
|
||||
margin-right: -125px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Specific Pages
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
/*
|
||||
Media Queries
|
||||
---------------------------------------------------------------------------------------------------- */
|
||||
@@ -2178,6 +2146,7 @@ Media Queries
|
||||
|
||||
/* Responsive Tables CSS
|
||||
--------------------------------------------- */
|
||||
|
||||
@media (max-width: 600px) {
|
||||
|
||||
table {
|
||||
@@ -2497,6 +2466,7 @@ Media Queries
|
||||
|
||||
/* Non-Mobile Navigation
|
||||
--------------------------------------------- */
|
||||
|
||||
#menu-toggle,
|
||||
.widget-area-toggle {
|
||||
display: none;
|
||||
@@ -2541,15 +2511,14 @@ Media Queries
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Primary Navigation
|
||||
--------------------------------------------- */
|
||||
|
||||
.nav-primary a {
|
||||
padding-right: 20px;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
|
||||
/* Navigation Extras
|
||||
--------------------------------------------- */
|
||||
|
||||
@@ -2673,11 +2642,11 @@ Media Queries
|
||||
color: #333;
|
||||
}
|
||||
|
||||
|
||||
/* Plugins
|
||||
--------------------------------------------- */
|
||||
|
||||
/* Events Manager */
|
||||
|
||||
.em-calendar-wrapper .fullcalendar tr {
|
||||
display: table-row !important;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user