1, // Top-level only. 'show_home' => true, ) ); return; } wp_nav_menu( array( 'theme_location' => 'primary', 'walker' => new Primer_Walker_Nav_Menu, ) ); } add_action( 'primer_site_navigation', 'primer_add_primary_menu' ); /** * Display primary navigation menu after the header. * * @action primer_after_header * @since 1.0.0 */ function primer_add_primary_navigation() { get_template_part( 'templates/parts/primary-navigation' ); } add_action( 'primer_after_header', 'primer_add_primary_navigation', primer_child_compat( 'after_header__add_primary_navigation', 11 ) ); /** * Display page titles after the header. * * @action primer_after_header * @since 1.0.0 */ function primer_add_page_title() { if ( primer_get_the_page_title() ) { get_template_part( 'templates/parts/page-title' ); } } add_action( 'primer_after_header', 'primer_add_page_title', primer_child_compat( 'after_header__add_page_title', 12 ) ); /** * Display post meta template. * * @action primer_after_post_title_template * @since 1.0.0 */ function primer_add_post_meta() { get_template_part( 'templates/parts/loop/post', 'meta' ); } add_action( 'primer_after_post_title_template', 'primer_add_post_meta' ); /** * Display widget areas in the footer. * * @action primer_footer * @since 1.0.0 */ function primer_add_footer_widgets() { get_template_part( 'templates/parts/footer-widgets' ); } add_action( 'primer_footer', 'primer_add_footer_widgets' ); /** * Display site info after the footer. * * @action primer_after_footer * @since 1.0.0 */ function primer_add_site_info() { get_template_part( 'templates/parts/site-info' ); } add_action( 'primer_after_footer', 'primer_add_site_info' ); /** * Display footer navigation menu in the footer. * * @action primer_site_info * @since 1.0.0 */ function primer_add_footer_navigation() { if ( has_nav_menu( 'footer' ) ) { get_template_part( 'templates/parts/footer-navigation' ); } } add_action( 'primer_site_info', 'primer_add_footer_navigation', 5 ); /** * Display social navigation menu in the footer. * * @action primer_site_info * @since 1.0.0 */ function primer_add_social_navigation() { if ( has_nav_menu( 'social' ) ) { get_template_part( 'templates/parts/social-navigation' ); } } add_action( 'primer_site_info', 'primer_add_social_navigation', 7 ); /** * Display credit in the footer. * * @action primer_site_info * @since 1.0.0 */ function primer_add_credit() { get_template_part( 'templates/parts/credit' ); } add_action( 'primer_site_info', 'primer_add_credit' ); /** * Set the post excerpt length to 20 words. * * To override this in a child theme, remove the filter and add * your own function tied to the `excerpt_length` filter hook: * * ``` * remove_filter( 'excerpt_length', 'primer_excerpt_length' ); * add_filter( 'excerpt_length', function() { return 30; } ); * ``` * * @filter excerpt_length * @link https://developer.wordpress.org/reference/hooks/excerpt_length/ * @since 1.0.0 * * @param int $number The number of words. Default is `55`. * * @return int Return the maximum number of words to use for excerpts. */ function primer_excerpt_length( $number ) { return 20; } add_filter( 'excerpt_length', 'primer_excerpt_length' ); /** * Replace "[...]" with an ellipsis. * * To override this in a child theme, remove the filter and add * your own function tied to the `excerpt_more` filter hook: * * ``` * remove_filter( 'excerpt_more', 'primer_excerpt_more' ); * add_filter( 'excerpt_more', function() { return '...and more'; } ); * ``` * * @filter excerpt_more * @link https://developer.wordpress.org/reference/hooks/excerpt_more/ * @since 1.0.0 * * @param string $more_string The string shown within the more link. * * @return string Returns the string in the “more” link displayed after a trimmed excerpt. */ function primer_excerpt_more( $more_string ) { return ! is_admin() ? '…' : $more_string; } add_filter( 'excerpt_more', 'primer_excerpt_more' ); /** * Wrap the jQuery script tag in a conditional comment. * * This technique allows non-IE 9 (and lower) browsers to use the * latest version of jQuery. * * To override this behavior in a child theme, remove the filter: * * remove_filter( 'script_loader_tag', 'primer_conditional_jquery_tag', 10, 2 ); * * @filter script_loader_tag * @link https://developer.wordpress.org/reference/hooks/script_loader_tag/ * @since 1.0.0 * * @param string $tag The `