mirror of
https://github.com/10h30/trestle.git
synced 2026-07-11 18:56:07 +09:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ade79de867 | |||
| 8a097c4be2 | |||
| c8861270e1 | |||
| 189b5fe995 | |||
| 8890f6e413 | |||
| 58a3cd2f26 |
@@ -35,6 +35,7 @@ function trestle_custom_defaults( $defaults ) {
|
||||
'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,
|
||||
|
||||
@@ -42,6 +42,16 @@
|
||||
});
|
||||
});
|
||||
|
||||
// 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 ) {
|
||||
@@ -69,7 +79,7 @@
|
||||
wp.customize( 'genesis-settings[trestle_read_more_text]', function( value ) {
|
||||
value.bind( function( value ) {
|
||||
|
||||
$( 'a.more-link' ).text( value );
|
||||
$( 'a.more-link' ).html( value );
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
@@ -108,13 +108,35 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
$wp_customize,
|
||||
'trestle_mobile_logo_control',
|
||||
array(
|
||||
'label' => __( 'Upload a logo for mobile', 'trestle' ),
|
||||
'label' => __( 'Upload a mobile logo', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'genesis-settings[trestle_logo_url_mobile]',
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Upload a mobile logo
|
||||
$wp_customize->add_setting(
|
||||
'genesis-settings[trestle_favicon_url]',
|
||||
array(
|
||||
'default' => genesis_get_option( 'trestle_favicon_url' ),
|
||||
'type' => 'option',
|
||||
'transport' => 'postMessage',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
new WP_Customize_Image_Control(
|
||||
$wp_customize,
|
||||
'trestle_favicon_control',
|
||||
array(
|
||||
'label' => __( 'Upload a favicon', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'genesis-settings[trestle_favicon_url]',
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Primary nav style
|
||||
$wp_customize->add_setting(
|
||||
'genesis-settings[trestle_nav_primary_location]',
|
||||
@@ -139,6 +161,26 @@ function trestle_customizer_controls( $wp_customize ) {
|
||||
)
|
||||
);
|
||||
|
||||
// Primary nav extras
|
||||
$wp_customize->add_setting(
|
||||
'genesis-settings[trestle_custom_nav_extras_text]',
|
||||
array(
|
||||
'default' => genesis_get_option( 'trestle_custom_nav_extras_text' ),
|
||||
'type' => 'option',
|
||||
'transport' => 'postMessage',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_custom_nav_extras_text_control',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'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(
|
||||
'genesis-settings[trestle_read_more_text]',
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
===========================================*/
|
||||
|
||||
add_action( 'init', 'trestle_load_bfa' );
|
||||
/**
|
||||
/**
|
||||
* Initialize the Better Font Awesome Library.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function trestle_load_bfa() {
|
||||
|
||||
|
||||
// Set the library initialization args
|
||||
$args = array(
|
||||
'version' => 'latest',
|
||||
@@ -206,42 +206,6 @@ function trestle_do_logos( $title, $inside, $wrap ) {
|
||||
* Navigation
|
||||
===========================================*/
|
||||
|
||||
add_action( 'init', 'trestle_nav_modifications' );
|
||||
/**
|
||||
* Performs modifications to the primary navigation menu
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @see trestle_add_mobile_nav()
|
||||
* @see trestle_auto_nav_items()
|
||||
* @see trestle_custom_nav_extras()
|
||||
* @see trestle_nav_placeholder()
|
||||
*/
|
||||
function trestle_nav_modifications() {
|
||||
|
||||
global $trestle_nav_title;
|
||||
|
||||
// Set title for Trestle placeholder navigation menu
|
||||
$trestle_nav_title = __( 'Trestle Auto Nav Placeholder', 'trestle' );
|
||||
|
||||
// Auto-generate nav if Genesis theme setting is checked
|
||||
if ( 1 == genesis_get_option( 'trestle_auto_nav' ) ) {
|
||||
add_filter( 'wp_nav_menu_items', 'trestle_auto_nav_items', 9, 2 );
|
||||
}
|
||||
|
||||
// Do custom nav extras
|
||||
if ( 1 == genesis_get_option( 'trestle_custom_nav_extras' ) ) {
|
||||
// Remove default nav extras
|
||||
remove_filter( 'wp_nav_menu_items', 'genesis_nav_right' );
|
||||
|
||||
// Add custom nav extras
|
||||
add_filter( 'wp_nav_menu_items', 'trestle_custom_nav_extras', 10, 2 );
|
||||
}
|
||||
|
||||
// Create placeholder navigation menu object if needed
|
||||
trestle_nav_placeholder();
|
||||
}
|
||||
|
||||
add_action( 'init', 'trestle_nav_primary_location' );
|
||||
/**
|
||||
* Move primary navigation into the header if need be.
|
||||
@@ -257,94 +221,25 @@ function trestle_nav_primary_location() {
|
||||
|
||||
}
|
||||
|
||||
add_filter( 'wp_nav_menu_items', 'trestle_custom_nav_extras', 10, 2 );
|
||||
/**
|
||||
* Auto-generates list of pages for use in the primary navigation menu.
|
||||
* Add custom nav extras.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @param string $nav_items <li> list of navigation menu items.
|
||||
* @param stdClass $menu_args Arguments for the menu.
|
||||
* @return string <li> list of (modified) navigation menu items.
|
||||
*/
|
||||
function trestle_auto_nav_items( $nav_items, stdClass $menu_args ) {
|
||||
|
||||
if ( 'primary' == $menu_args->theme_location ) {
|
||||
$args = array(
|
||||
'depth' => genesis_get_option( 'trestle_auto_nav_depth' ) ? genesis_get_option( 'trestle_auto_nav_depth' ) : 0,
|
||||
'echo' => false,
|
||||
'show_home' => ( genesis_get_option( 'trestle_include_home_link' ) && genesis_get_option( 'trestle_home_link_text' ) ) ? do_shortcode( genesis_get_option( 'trestle_home_link_text' ) ): genesis_get_option( 'trestle_include_home_link' ),
|
||||
'menu_class' => 'auto-menu'
|
||||
);
|
||||
|
||||
$ul_class = 'menu genesis-nav-menu menu-primary';
|
||||
|
||||
$menu_args = new stdClass();
|
||||
|
||||
$menu_args->theme_location = 'primary';
|
||||
|
||||
$nav_items = wp_page_menu( $args );
|
||||
|
||||
// Remove opening <div class="auto-nav"><ul>
|
||||
$nav_items = preg_replace( '/<div\s*.*auto-menu[^>]*>\s*<ul>/', '', $nav_items );
|
||||
|
||||
// Remove closing </ul></div>
|
||||
$nav_items = preg_replace( '/<\/ul>\s*<\/div>/', '', $nav_items );
|
||||
}
|
||||
|
||||
return $nav_items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces standard Genesis navigation extras with custom input navigation extras.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @param string $nav_items <li> list of menu items.
|
||||
* @param stdClass $menu_args Arguments for the menu.
|
||||
* @param string $nav_items <li> list of menu items.
|
||||
* @param stdClass $menu_args Arguments for the menu.
|
||||
* @return string <li> list of menu items with custom navigation extras <li> appended.
|
||||
*/
|
||||
function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) {
|
||||
|
||||
if ( 'primary' == $menu_args->theme_location ) {
|
||||
$custom_text = esc_attr( genesis_get_option( 'trestle_custom_nav_extras_text' ) );
|
||||
return $nav_items . '<li class="right custom">' . do_shortcode( genesis_get_option( 'trestle_custom_nav_extras_text' ) ) . '</li>';
|
||||
if ( 'primary' == $menu_args->theme_location && genesis_get_option( 'trestle_custom_nav_extras_text' ) ) {
|
||||
return $nav_items . '<li class="right custom">' . get_search_form( false ) . '</li>';
|
||||
}
|
||||
|
||||
return $nav_items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a placeholder navigation menu object.
|
||||
*
|
||||
* When using Trestle's auto-generated navigation feature,
|
||||
* it is necessary to ensure that some nav menu object is
|
||||
* selected as primary otherwise no navigation will be generated.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
function trestle_nav_placeholder() {
|
||||
|
||||
global $trestle_nav_title;
|
||||
|
||||
// Create placeholder menu for 'primary' spot if auto-nav is selected - this ensures that nav extras can be used even when no custom menu is formally set to primary
|
||||
if ( 1 == genesis_get_option( 'trestle_auto_nav' ) && ! wp_get_nav_menu_object( $trestle_nav_title ) ) {
|
||||
wp_create_nav_menu( $trestle_nav_title );
|
||||
}
|
||||
|
||||
// Assign placeholder menu to 'primary' if auto-nav is selected and there is no current primary menu
|
||||
if ( 1 == genesis_get_option( 'trestle_auto_nav' ) && ! wp_get_nav_menu_object( $trestle_nav_title ) && ! has_nav_menu( 'primary' ) ) {
|
||||
$menu_locations = get_theme_mod( 'nav_menu_locations' );
|
||||
$menu_locations['primary'] = wp_get_nav_menu_object( $trestle_nav_title )->term_id;
|
||||
set_theme_mod( 'nav_menu_locations', $menu_locations );
|
||||
}
|
||||
|
||||
// Remove placeholder menu if auto-nav is disabled
|
||||
$menus = get_registered_nav_menus();
|
||||
|
||||
if ( 1 != genesis_get_option( 'trestle_auto_nav' ) && wp_get_nav_menu_object( $trestle_nav_title ) && $trestle_nav_title != $menus['primary'] )
|
||||
wp_delete_nav_menu( $trestle_nav_title );
|
||||
}
|
||||
|
||||
|
||||
/*===========================================
|
||||
* Posts & Pages
|
||||
@@ -462,11 +357,7 @@ function trestle_read_more_link( $default_text ) {
|
||||
// Get Trestle custom "read more" link text
|
||||
$custom_text = esc_attr( genesis_get_option( 'trestle_read_more_text' ) );
|
||||
|
||||
<<<<<<< HEAD
|
||||
if ( $custom_text ) {
|
||||
=======
|
||||
if ( $custom_text )
|
||||
>>>>>>> 9de3310f116bb4f7dd5323ca40b16f2fe4160dcd
|
||||
if ( $custom_text ) {
|
||||
return '… <a class="more-link" title="' . $custom_text . '" href="' . get_permalink() . '">' . $custom_text . '</a>';
|
||||
} else {
|
||||
return $default_text;
|
||||
|
||||
@@ -27,7 +27,7 @@ jQuery( document ).ready( function( $ ) {
|
||||
$( 'li:first-child' ).addClass( 'first' );
|
||||
$( 'ul, ol' ).parent( 'li' ).addClass( 'parent' );
|
||||
|
||||
// Mobile header toggle buttons
|
||||
// Create mobile header toggle buttons
|
||||
$( '.site-header .title-area' ).after( '<div class="toggle-buttons" />' );
|
||||
$( '.site-header .widget-area, .nav-primary' ).each( function( i ) {
|
||||
|
||||
@@ -58,7 +58,7 @@ jQuery( document ).ready( function( $ ) {
|
||||
$target.addClass( 'toggle-target-' + i );
|
||||
});
|
||||
|
||||
// Toggle widget areas and primary nav
|
||||
// A widget areas and primary nav mobile toggle functionality
|
||||
$( '.site-header .toggle-button' ).click( function( event ) {
|
||||
|
||||
// Prevent default behavior
|
||||
@@ -70,11 +70,9 @@ jQuery( document ).ready( function( $ ) {
|
||||
// Get toggle button that was clicked
|
||||
$button = $( this );
|
||||
|
||||
//Remove focus
|
||||
$button.blur();
|
||||
|
||||
// Match the button to the right target
|
||||
$target = $( '.toggle-target-' + $button.attr( 'id' ).match( /\d+/ ) );
|
||||
console.log( 'Target: ' + $target.attr('class'));
|
||||
|
||||
// Toggle buttons
|
||||
$button.toggleClass( 'open' );
|
||||
@@ -82,7 +80,11 @@ jQuery( document ).ready( function( $ ) {
|
||||
|
||||
// Toggle targets
|
||||
$target.toggleClass( 'open' );
|
||||
$( '[class^="toggle-target"]' ).not( $target ).removeClass( 'open' );
|
||||
$( '[class*="toggle-target"]' ).not( $target ).removeClass( 'open' );
|
||||
|
||||
// Remove focus
|
||||
$button.blur();
|
||||
|
||||
});
|
||||
|
||||
// Mobile navigation icons
|
||||
|
||||
@@ -1368,15 +1368,11 @@ Site Header
|
||||
|
||||
.site-header .widget-area {
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ddd;
|
||||
border-width: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.site-header .widget-area.open {
|
||||
padding: 20px;
|
||||
border-width: 1px 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.site-header .search-form {
|
||||
@@ -1414,23 +1410,21 @@ Site Header
|
||||
content: "\f0c9";
|
||||
}
|
||||
|
||||
|
||||
.nav-primary,
|
||||
/*.site-header .nav-primary,*/
|
||||
.site-header .widget-area {
|
||||
position: absolute;
|
||||
z-index: -999;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
max-height: 0;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
box-shadow: 0 4px 8px 1px rgba(0,0,0,0.4);
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||
-webkit-transition: all .5s ease, padding 0s .5s;
|
||||
-moz-transition: all .5s ease, padding 0s .5s;
|
||||
-ms-transition: all .5s ease, padding 0s .5s;
|
||||
-o-transition: all .5s ease, padding 0s .5s;
|
||||
transition: all .5s ease, padding 0s .5s;
|
||||
-webkit-transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
-moz-transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
-ms-transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
-o-transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
}
|
||||
|
||||
.site-container > .nav-primary {
|
||||
@@ -1440,14 +1434,13 @@ Site Header
|
||||
.nav-primary.open,
|
||||
.widget-area.open {
|
||||
z-index: 50;
|
||||
max-height: 9999px;
|
||||
opacity: 1;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||
-webkit-transition: opacity .5s ease, padding 0s 0s;
|
||||
-moz-transition: opacity .5s ease, padding 0s 0s;
|
||||
-ms-transition: opacity .5s ease, padding 0s 0s;
|
||||
-o-transition: opacity .5s ease, padding 0s 0s;
|
||||
transition: opacity .5s ease, padding 0s 0s;
|
||||
filter: alpha(opacity=100);
|
||||
-webkit-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
-moz-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
-ms-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
-o-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
}
|
||||
|
||||
|
||||
@@ -1623,7 +1616,7 @@ Site Navigation
|
||||
|
||||
.genesis-nav-menu > .right .search-form {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.genesis-nav-menu > .right input[type="submit"] {
|
||||
@@ -1682,12 +1675,6 @@ Site Navigation
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.site-header .nav-primary a:hover,
|
||||
.site-header .nav-primary [class*="current-"] > a,
|
||||
.site-header .nav-primary [class*="current_"] > a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.site-header .right {
|
||||
padding-right: 0;
|
||||
}
|
||||
@@ -2481,7 +2468,7 @@ Media Queries
|
||||
--------------------------------------------- */
|
||||
|
||||
.genesis-nav-menu > .right {
|
||||
display: inline-block;
|
||||
display: none;
|
||||
float: right;
|
||||
border-top: none;
|
||||
}
|
||||
@@ -2491,10 +2478,6 @@ Media Queries
|
||||
margin: 0 0 0 2rem;
|
||||
}
|
||||
|
||||
.genesis-nav-menu > .search form {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.genesis-nav-menu > .right input[type="submit"] {
|
||||
display: inline-block;
|
||||
}
|
||||
@@ -2570,6 +2553,16 @@ Media Queries
|
||||
padding: 0.6em 1.2em;
|
||||
}
|
||||
|
||||
.site-header .nav-primary .menu > li:last-of-type:not(.right) {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.site-header .nav-primary a:hover,
|
||||
.site-header .nav-primary [class*="current-"] > a,
|
||||
.site-header .nav-primary [class*="current_"] > a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
|
||||
/* Plugins
|
||||
--------------------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user