__( 'Primary Menu', 'landshafting' ),
'footer' => __( 'Footer Menu', 'landshafting' ),
) );
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support( 'html5', array(
'comment-form',
'comment-list',
'gallery',
'caption',
) );
// Add support for Block Styles.
add_theme_support( 'wp-block-styles' );
add_theme_support( 'editor-styles' );
// add the visual editor to resemble the theme style
add_editor_style( 'css/editor-style.css' );
// add custom background
add_theme_support( 'custom-background',
array ('default-color' => '#f7f7f7')
);
// add content width
global $content_width;
if ( ! isset( $content_width ) ) {
$content_width = 900;
}
// add custom header
add_theme_support( 'custom-header', array (
'default-image' => '',
'random-default' => '',
'flex-height' => true,
'flex-width' => true,
'uploads' => true,
'width' => 900,
'height' => 100,
'default-text-color' => '#555555',
'wp-head-callback' => 'landshafting_header_style',
) );
// add custom logo
add_theme_support( 'custom-logo', array (
'width' => 75,
'height' => 75,
'flex-height' => true,
'flex-width' => true,
) );
// Define and register starter content to showcase the theme on new sites.
$starter_content = array(
'widgets' => array(
'sidebar-widget-area' => array(
'search',
'recent-posts',
'categories',
'archives',
),
'footer-column-1-widget-area' => array(
'recent-comments'
),
'footer-column-2-widget-area' => array(
'recent-posts'
),
'footer-column-3-widget-area' => array(
'calendar'
),
),
'posts' => array(
'home',
'blog',
'about',
'contact'
),
// Default to a static front page and assign the front and posts pages.
'options' => array(
'show_on_front' => 'page',
'page_on_front' => '{{home}}',
'page_for_posts' => '{{blog}}',
),
// Set the front page section theme mods to the IDs of the core-registered pages.
'theme_mods' => array(
'landshafting_slider_display' => 1,
'landshafting_slide1_image' => esc_url( get_template_directory_uri() . '/images/slider/1.jpg' ),
'landshafting_slide2_image' => esc_url( get_template_directory_uri() . '/images/slider/2.jpg' ),
'landshafting_slide3_image' => esc_url( get_template_directory_uri() . '/images/slider/3.jpg' ),
'landshafting_slide4_image' => esc_url( get_template_directory_uri() . '/images/slider/4.jpg' ),
'landshafting_slide5_image' => esc_url( get_template_directory_uri() . '/images/slider/5.jpg' ),
'landshafting_social_facebook' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_twitter' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_linkedin' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_instagram' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_rss' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_tumblr' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_youtube' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_pinterest' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_vk' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_flickr' => _x( '#', 'Theme starter content', 'landshafting' ),
'landshafting_social_vine' => _x( '#', 'Theme starter content', 'landshafting' ),
),
'nav_menus' => array(
// Assign a menu to the "primary" location.
'primary' => array(
'name' => __( 'Primary Menu', 'landshafting' ),
'items' => array(
'link_home',
'page_blog',
'page_contact',
'page_about',
),
),
// Assign a menu to the "footer" location.
'footer' => array(
'name' => __( 'Footer Menu', 'landshafting' ),
'items' => array(
'link_home',
'page_about',
'page_blog',
'page_contact',
),
),
),
);
$starter_content = apply_filters( 'landshafting_starter_content', $starter_content );
add_theme_support( 'starter-content', $starter_content );
}
endif; // landshafting_setup
add_action( 'after_setup_theme', 'landshafting_setup' );
if ( ! function_exists( 'landshafting_sanitize_checkbox' ) ) :
/**
* Sanitization callback for 'checkbox' type controls. This callback sanitizes `$checked`
* as a boolean value, either TRUE or FALSE.
*
* @param bool $checked Whether the checkbox is checked.
* @return bool Whether the checkbox is checked.
*/
function landshafting_sanitize_checkbox( $checked ) {
// Boolean check.
return ( ( isset( $checked ) && true == $checked ) ? true : false );
}
endif; // landshafting_sanitize_checkbox
if ( ! function_exists( 'landshafting_sanitize_url' ) ) :
function landshafting_sanitize_url( $url ) {
return esc_url_raw( $url );
}
endif; // landshafting_sanitize_url
/**
* Register theme settings in the customizer
*/
function landshafting_customize_register( $wp_customize ) {
/**
* Add Social Sites Section
*/
$wp_customize->add_section(
'landshafting_social_section',
array(
'title' => __( 'Social Sites', 'landshafting' ),
'capability' => 'edit_theme_options',
)
);
// Add facebook url
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_facebook',
__( 'Facebook Page URL', 'landshafting' ));
// Add twitter url
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_twitter',
__( 'Twitter URL', 'landshafting' ));
// Add LinkedIn
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_linkedin',
__( 'LinkedIn', 'landshafting' ));
// Add Instagram
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_instagram',
__( 'Instagram', 'landshafting' ));
// Add RSS Feeds url
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_rss',
__( 'RSS Feeds URL', 'landshafting' ));
// Add Tumblr Text Control
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_tumblr',
__( 'Tumblr', 'landshafting' ));
// Add YouTube channel url
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_youtube',
__( 'YouTube channel URL', 'landshafting' ));
// Add Pinterest Text Control
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_pinterest',
__( 'Pinterest', 'landshafting' ));
// Add VK Text Control
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_vk',
__( 'VK', 'landshafting' ));
// Add Flickr Text Control
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_flickr',
__( 'Flickr', 'landshafting' ));
// Add Vine Text Control
landshafting_customize_add_social_site($wp_customize, 'landshafting_social_vine',
__( 'Vine', 'landshafting' ));
/**
* Add Slider Section
*/
$wp_customize->add_section(
'landshafting_slider_section',
array(
'title' => __( 'Slider', 'landshafting' ),
'capability' => 'edit_theme_options',
)
);
// Add display slider option
$wp_customize->add_setting(
'landshafting_slider_display',
array(
'default' => 0,
'sanitize_callback' => 'landshafting_sanitize_checkbox',
)
);
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'landshafting_slider_display',
array(
'label' => __( 'Display Slider on a Static Front Page', 'landshafting' ),
'section' => 'landshafting_slider_section',
'settings' => 'landshafting_slider_display',
'type' => 'checkbox',
)
)
);
for ($i = 1; $i <= 5; ++$i) {
$slideImageId = 'landshafting_slide'.$i.'_image';
$defaultSliderImagePath = get_template_directory_uri().'/images/slider/'.$i.'.jpg';
// Add Slide Background Image
$wp_customize->add_setting( $slideImageId,
array(
'default' => $defaultSliderImagePath,
'sanitize_callback' => 'landshafting_sanitize_url'
)
);
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, $slideImageId,
array(
'label' => sprintf( esc_html__( 'Slide #%s Image', 'landshafting' ), $i ),
'section' => 'landshafting_slider_section',
'settings' => $slideImageId,
)
)
);
}
/**
* Add Footer Section
*/
$wp_customize->add_section(
'landshafting_footer_section',
array(
'title' => __( 'Footer', 'landshafting' ),
'capability' => 'edit_theme_options',
)
);
// Add footer copyright text
$wp_customize->add_setting(
'landshafting_footer_copyright',
array(
'default' => '',
'sanitize_callback' => 'sanitize_text_field',
)
);
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'landshafting_footer_copyright',
array(
'label' => __( 'Copyright Text', 'landshafting' ),
'section' => 'landshafting_footer_section',
'settings' => 'landshafting_footer_copyright',
'type' => 'text',
)
)
);
/**
* Add Animations Section
*/
$wp_customize->add_section(
'landshafting_animations_display',
array(
'title' => __( 'Animations', 'landshafting' ),
'capability' => 'edit_theme_options',
)
);
// Add display Animations option
$wp_customize->add_setting(
'landshafting_animations_display',
array(
'default' => 1,
'sanitize_callback' => 'landshafting_sanitize_checkbox',
)
);
$wp_customize->add_control( new WP_Customize_Control( $wp_customize,
'landshafting_animations_display',
array(
'label' => __( 'Enable Animations', 'landshafting' ),
'section' => 'landshafting_animations_display',
'settings' => 'landshafting_animations_display',
'type' => 'checkbox',
)
)
);
}
add_action('customize_register', 'landshafting_customize_register');
/**
* Add Social Site control into Customizer
*/
function landshafting_customize_add_social_site($wp_customize, $controlId, $label) {
$wp_customize->add_setting(
$controlId,
array(
'sanitize_callback' => 'landshafting_sanitize_url',
)
);
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, $controlId,
array(
'label' => $label,
'section' => 'landshafting_social_section',
'settings' => $controlId,
'type' => 'text',
)
)
);
}
/**
* the main function to load scripts in the Landshafting theme
* if you add a new load of script, style, etc. you can use that function
* instead of adding a new wp_enqueue_scripts action for it.
*/
function landshafting_load_scripts() {
// load main stylesheet.
wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/css/font-awesome.min.css', array( ) );
wp_enqueue_style( 'animate-css', get_template_directory_uri() . '/css/animate.css', array( ) );
wp_enqueue_style( 'landshafting-style', get_stylesheet_uri(), array() );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
// Load Utilities JS Script
wp_enqueue_script( 'viewportchecker',
get_template_directory_uri() . '/js/viewportchecker.js', array( 'jquery' ) );
wp_enqueue_script( 'landshafting-js',
get_template_directory_uri() . '/js/utilities.js', array( 'jquery', 'viewportchecker' ) );
$data = array(
'loading_effect' => ( get_theme_mod('landshafting_animations_display', 1) == 1 ),
);
wp_localize_script('landshafting-js', 'landshafting_options', $data);
}
add_action( 'wp_enqueue_scripts', 'landshafting_load_scripts' );
/**
* Load google font url used in the Landshafting theme
*/
function landshafting_fonts_url() {
$fonts_url = '';
/* Translators: If there are characters in your language that are not
* supported by PT Sans, translate this to 'off'. Do not translate
* into your own language.
*/
$cantarell = _x( 'on', 'PT Sans font: on or off', 'landshafting' );
if ( 'off' !== $cantarell ) {
$font_families = array();
$font_families[] = 'PT Sans';
$query_args = array(
'family' => urlencode( implode( '|', $font_families ) ),
'subset' => urlencode( 'latin,cyrillic-ext,cyrillic,latin-ext' ),
);
$fonts_url = add_query_arg( $query_args, '//fonts.googleapis.com/css' );
}
return $fonts_url;
}
/**
* Display website's logo image
*/
function landshafting_show_website_logo_image_and_title() {
if ( has_custom_logo() ) {
the_custom_logo();
}
$header_text_color = get_header_textcolor();
if ( 'blank' !== $header_text_color ) {
echo '';
}
}
/**
* Displays the copyright text.
*/
function landshafting_show_copyright_text() {
$footerText = get_theme_mod('landshafting_footer_copyright', null);
if ( !empty( $footerText ) ) {
echo esc_html( $footerText ) . ' | ';
}
}
/**
* widgets-init action handler. Used to register widgets and register widget areas
*/
function landshafting_widgets_init() {
// Register Sidebar Widget.
register_sidebar( array (
'name' => __( 'Sidebar Widget Area', 'landshafting'),
'id' => 'sidebar-widget-area',
'description' => __( 'The sidebar widget area', 'landshafting'),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Register Footer Column #1
register_sidebar( array (
'name' => __( 'Footer Column #1', 'landshafting' ),
'id' => 'footer-column-1-widget-area',
'description' => __( 'The Footer Column #1 widget area', 'landshafting' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Register Footer Column #2
register_sidebar( array (
'name' => __( 'Footer Column #2', 'landshafting' ),
'id' => 'footer-column-2-widget-area',
'description' => __( 'The Footer Column #2 widget area', 'landshafting' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Register Footer Column #3
register_sidebar( array (
'name' => __( 'Footer Column #3', 'landshafting' ),
'id' => 'footer-column-3-widget-area',
'description' => __( 'The Footer Column #3 widget area', 'landshafting' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
}
add_action( 'widgets_init', 'landshafting_widgets_init' );
/**
* Displays the Slider
*/
function landshafting_display_slider() { ?>
';
}
}
/**
* Display Social Websites
*/
function landshafting_display_social_sites() {
landshafting_display_single_social_site('landshafting_social_facebook', __('Follow us on Facebook', 'landshafting'), 'facebook16' );
landshafting_display_single_social_site('landshafting_social_twitter', __('Follow us on Twitter', 'landshafting'), 'twitter16' );
landshafting_display_single_social_site('landshafting_social_linkedin', __('Follow us on LinkedIn', 'landshafting'), 'linkedin16' );
landshafting_display_single_social_site('landshafting_social_instagram', __('Follow us on Instagram', 'landshafting'), 'instagram16' );
landshafting_display_single_social_site('landshafting_social_rss', __('Follow our RSS Feeds', 'landshafting'), 'rss16' );
landshafting_display_single_social_site('landshafting_social_tumblr', __('Follow us on Tumblr', 'landshafting'), 'tumblr16' );
landshafting_display_single_social_site('landshafting_social_youtube', __('Follow us on Youtube', 'landshafting'), 'youtube16' );
landshafting_display_single_social_site('landshafting_social_pinterest', __('Follow us on Pinterest', 'landshafting'), 'pinterest16' );
landshafting_display_single_social_site('landshafting_social_vk', __('Follow us on VK', 'landshafting'), 'vk16' );
landshafting_display_single_social_site('landshafting_social_flickr', __('Follow us on Flickr', 'landshafting'), 'flickr16' );
landshafting_display_single_social_site('landshafting_social_vine', __('Follow us on Vine', 'landshafting'), 'vine16' );
}
/**
* Fix skip link focus in IE11.
*
* This does not enqueue the script because it is tiny and because it is only for IE11,
* thus it does not warrant having an entire dedicated blocking script being loaded.
*
* @link https://git.io/vWdr2
*/
function landshafting_skip_link_focus_fix() {
// The following is minified via `terser --compress --mangle -- js/skip-link-focus-fix.js`.
?>
'btn',
'label' => __( 'Hover Effect', 'landshafting' ),
)
);
register_block_style(
'core/group',
array(
'name' => 'tgroup',
'label' => __( 'Margin Bottom Space', 'landshafting' ),
)
);
register_block_style(
'core/site-title',
array(
'name' => 'tsitetitle',
'label' => __( 'Bold', 'landshafting' ),
)
);
register_block_style(
'core/post-title',
array(
'name' => 'tposttitle',
'label' => __( 'Bold', 'landshafting' ),
)
);
register_block_style(
'core/social-link',
array(
'name' => 'tsociallinks',
'label' => __( 'Square', 'landshafting' ),
)
);
}
add_action( 'init', 'landshafting_register_block_styles' );
?>