version );
define('SITEURL', get_site_url() );
if ( ! function_exists( 'fordummies_setup' ) ) :
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which
* runs before the init hook. The init hook is too late for some features, such
* as indicating support for post thumbnails.
*
* Create your own fordummies_setup() function to override in a child theme.
*
* @since For dummies 1.0
*/
function fordummies_setup() {
/*
* Make theme available for translation.
* Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/fordummies
* If you're building a theme based on For dummies, use a find and replace
* to change 'fordummies' to the name of your theme in all the template files
*/
load_theme_textdomain( 'fordummies' );
// Add default posts and comments RSS feed links to head.
add_theme_support( 'automatic-feed-links' );
/*
* Let WordPress manage the document title.
* By adding theme support, we declare that this theme does not use a
* hard-coded
tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( 'title-tag' );
/*
* Enable support for custom logo.
*
* @since For dummies 1.2
*/
add_theme_support( 'custom-logo', array(
'height' => 240,
'width' => 240,
'flex-height' => true,
) );
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
*/
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 1200, 9999 );
// This theme uses wp_nav_menu() in two locations.
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'fordummies' ),
'social' => __( 'Social Links Menu', 'fordummies' ),
) );
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support( 'html5', array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
) );
/*
* Enable support for Post Formats.
*
* See: https://codex.wordpress.org/Post_Formats
*/
add_theme_support( 'post-formats', array(
'aside',
'image',
'video',
'quote',
'link',
'gallery',
'status',
'audio',
'chat',
) );
/*
* This theme styles the visual editor to resemble the theme style,
* specifically font, colors, icons, and column width.
*/
add_editor_style( array( 'css/editor-style.css', fordummies_fonts_url() ) );
// Indicate widget sidebars can use selective refresh in the Customizer.
add_theme_support( 'customize-selective-refresh-widgets' );
}
endif; // fordummies_setup
add_action( 'after_setup_theme', 'fordummies_setup' );
/**
* Sets the content width in pixels, based on the theme's design and stylesheet.
*
* Priority 0 to make it available to lower priority callbacks.
*
* @global int $content_width
*
* @since For dummies 1.0
*/
function fordummies_content_width() {
$GLOBALS['content_width'] = apply_filters( 'fordummies_content_width', 840 );
}
add_action( 'after_setup_theme', 'fordummies_content_width', 0 );
/**
* Registers a widget area.
*
* @link https://developer.wordpress.org/reference/functions/register_sidebar/
*
* @since For dummies 1.0
*/
function fordummies_widgets_init() {
register_sidebar( array(
'name' => __( 'Sidebar', 'fordummies' ),
'id' => 'sidebar-1',
'description' => __( 'Add widgets here to appear in your sidebar.', 'fordummies' ),
'before_widget' => '',
'before_title' => '',
) );
register_sidebar(array(
'name' => __( 'First Footer Widget', 'fordummies' ),
'id' => '1-footer',
'description' => __( 'Add widgets here to appear in your left footer.', 'fordummies' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
));
register_sidebar(array(
'name' => __( 'Second Footer Widget', 'fordummies' ),
'id' => '2-footer',
'description' => __( 'Add widgets here to appear in your center footer.', 'fordummies' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
));
register_sidebar(array(
'name' => __( 'Third Footer Widget', 'fordummies' ),
'id' => '3-footer',
'description' => __( 'Add widgets here to appear in your right footer.', 'fordummies' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
));
}
add_action( 'widgets_init', 'fordummies_widgets_init' );
if ( ! function_exists( 'fordummies_fonts_url' ) ) :
/**
* Register Google fonts for For dummies.
*
* Create your own fordummies_fonts_url() function to override in a child theme.
*
* @since For dummies 1.0
*
* @return string Google fonts URL for the theme.
*/
function fordummies_fonts_url() {
$fonts_url = '';
$fonts = array();
$subsets = 'latin,latin-ext';
/* translators: If there are characters in your language that are not supported by Merriweather, translate this to 'off'. Do not translate into your own language. */
if ( 'off' !== _x( 'on', 'Merriweather font: on or off', 'fordummies' ) ) {
$fonts[] = 'Merriweather:400,700,900,400italic,700italic,900italic';
}
/* translators: If there are characters in your language that are not supported by Montserrat, translate this to 'off'. Do not translate into your own language. */
if ( 'off' !== _x( 'on', 'Montserrat font: on or off', 'fordummies' ) ) {
$fonts[] = 'Montserrat:400,700';
}
/* translators: If there are characters in your language that are not supported by Inconsolata, translate this to 'off'. Do not translate into your own language. */
if ( 'off' !== _x( 'on', 'Inconsolata font: on or off', 'fordummies' ) ) {
$fonts[] = 'Inconsolata:400';
}
if ( $fonts ) {
$fonts_url = add_query_arg( array(
'family' => urlencode( implode( '|', $fonts ) ),
'subset' => urlencode( $subsets ),
), 'https://fonts.googleapis.com/css' );
}
return $fonts_url;
}
endif;
/**
* Handles JavaScript detection.
*
* Adds a `js` class to the root `` element when JavaScript is detected.
*
* @since For dummies 1.0
*/
function fordummies_javascript_detection() {
echo "\n";
}
add_action( 'wp_head', 'fordummies_javascript_detection', 0 );
/**
* Enqueues scripts and styles.
*
* @since For dummies 1.0
*/
function fordummies_scripts() {
// Add custom fonts, used in the main stylesheet.
wp_enqueue_style( 'fordummies-fonts', fordummies_fonts_url(), array(), null );
// Add Genericons, used in the main stylesheet.
wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.4.1' );
// Theme stylesheet.
wp_enqueue_style( 'fordummies-style', get_stylesheet_uri() );
// Load the Internet Explorer specific stylesheet.
wp_enqueue_style( 'fordummies-ie', get_template_directory_uri() . '/css/ie.css', array( 'fordummies-style' ), '20160816' );
wp_style_add_data( 'fordummies-ie', 'conditional', 'lt IE 10' );
// Load the Internet Explorer 8 specific stylesheet.
wp_enqueue_style( 'fordummies-ie8', get_template_directory_uri() . '/css/ie8.css', array( 'fordummies-style' ), '20160816' );
wp_style_add_data( 'fordummies-ie8', 'conditional', 'lt IE 9' );
// Load the Internet Explorer 7 specific stylesheet.
wp_enqueue_style( 'fordummies-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'fordummies-style' ), '20160816' );
wp_style_add_data( 'fordummies-ie7', 'conditional', 'lt IE 8' );
// Load the html5 shiv.
wp_enqueue_script( 'fordummies-html5', get_template_directory_uri() . '/js/html5.js', array(), '3.7.3' );
wp_script_add_data( 'fordummies-html5', 'conditional', 'lt IE 9' );
wp_enqueue_script( 'fordummies-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20160816', true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
if ( is_singular() && wp_attachment_is_image() ) {
wp_enqueue_script( 'fordummies-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20160816' );
}
wp_enqueue_script( 'fordummies-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20160816', true );
wp_localize_script( 'fordummies-script', 'screenReaderText', array(
'expand' => __( 'expand child menu', 'fordummies' ),
'collapse' => __( 'collapse child menu', 'fordummies' ),
) );
}
add_action( 'wp_enqueue_scripts', 'fordummies_scripts' );
/**
* Tiny MCE Extra Buttons
*
* @since fordummies 1.0
*
*/
if ( ! function_exists( 'fordummies_wp_mce_buttons' ) ) {
function fordummies_wp_mce_buttons( $buttons ) {
array_unshift( $buttons, 'fontselect' ); // Add Font Select
array_unshift( $buttons, 'fontsizeselect' ); // Add Font Size Select
array_unshift( $buttons, 6,0, 'backcolor' );
return $buttons;
}
}
add_filter( 'mce_buttons_2', 'fordummies_wp_mce_buttons' );
/**
* Adds custom classes to the array of body classes.
*
* @since For dummies 1.0
*
* @param array $classes Classes for the body element.
* @return array (Maybe) filtered body classes.
*/
function fordummies_body_classes( $classes ) {
// Adds a class of custom-background-image to sites with a custom background image.
if ( get_background_image() ) {
$classes[] = 'custom-background-image';
}
// Adds a class of group-blog to sites with more than 1 published author.
if ( is_multi_author() ) {
$classes[] = 'group-blog';
}
// Adds a class of no-sidebar to sites without active sidebar.
if ( ! is_active_sidebar( 'sidebar-1' ) ) {
$classes[] = 'no-sidebar';
}
// Adds a class of hfeed to non-singular pages.
if ( ! is_singular() ) {
$classes[] = 'hfeed';
}
return $classes;
}
add_filter( 'body_class', 'fordummies_body_classes' );
/**
* Converts a HEX value to RGB.
*
* @since For dummies 1.0
*
* @param string $color The original color, in 3- or 6-digit hexadecimal form.
* @return array Array containing RGB (red, green, and blue) values for the given
* HEX code, empty array otherwise.
*/
function fordummies_hex2rgb( $color ) {
$color = trim( $color, '#' );
if ( strlen( $color ) === 3 ) {
$r = hexdec( substr( $color, 0, 1 ).substr( $color, 0, 1 ) );
$g = hexdec( substr( $color, 1, 1 ).substr( $color, 1, 1 ) );
$b = hexdec( substr( $color, 2, 1 ).substr( $color, 2, 1 ) );
} else if ( strlen( $color ) === 6 ) {
$r = hexdec( substr( $color, 0, 2 ) );
$g = hexdec( substr( $color, 2, 2 ) );
$b = hexdec( substr( $color, 4, 2 ) );
} else {
return array();
}
return array( 'red' => $r, 'green' => $g, 'blue' => $b );
}
/**
* Custom template tags for this theme.
*/
require get_template_directory() . '/inc/template-tags.php';
/**
* Customizer additions.
*/
require_once get_template_directory() . '/inc/pinstaller.php';
require get_template_directory() . '/inc/customizer.php';
/**
* Add custom image sizes attribute to enhance responsive image functionality
* for content images
*
* @since For dummies 1.0
*
* @param string $sizes A source size value for use in a 'sizes' attribute.
* @param array $size Image size. Accepts an array of width and height
* values in pixels (in that order).
* @return string A source size value for use in a content image 'sizes' attribute.
*/
function fordummies_content_image_sizes_attr( $sizes, $size ) {
$width = $size[0];
840 <= $width && $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px';
if ( 'page' === get_post_type() ) {
840 > $width && $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px';
} else {
840 > $width && 600 <= $width && $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px';
600 > $width && $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px';
}
return $sizes;
}
add_filter( 'wp_calculate_image_sizes', 'fordummies_content_image_sizes_attr', 10 , 2 );
/**
* Add custom image sizes attribute to enhance responsive image functionality
* for post thumbnails
*
* @since For dummies 1.0
*
* @param array $attr Attributes for the image markup.
* @param int $attachment Image attachment ID.
* @param array $size Registered image size or flat array of height and width dimensions.
* @return string A source size value for use in a post thumbnail 'sizes' attribute.
*/
function fordummies_post_thumbnail_sizes_attr( $attr, $attachment, $size ) {
if ( 'post-thumbnail' === $size ) {
is_active_sidebar( 'sidebar-1' ) && $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px';
! is_active_sidebar( 'sidebar-1' ) && $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 88vw, 1200px';
}
return $attr;
}
add_filter( 'wp_get_attachment_image_attributes', 'fordummies_post_thumbnail_sizes_attr', 10 , 3 );
/**
* Modifies tag cloud widget arguments to have all tags in the widget same font size.
*
* @since For dummies 1.1
*
* @param array $args Arguments for tag cloud widget.
* @return array A new modified arguments.
*/
function fordummies_widget_tag_cloud_args( $args ) {
$args['largest'] = 1;
$args['smallest'] = 1;
$args['unit'] = 'em';
return $args;
}
add_filter( 'widget_tag_cloud_args', 'fordummies_widget_tag_cloud_args' );
function fordummies_sanitizehtml( $str ) {
$allowed_html = array(
'a' => array(
'href' => true,
'title' => true,
),
'abbr' => array(
'title' => true,
),
'acronym' => array(
'title' => true,
),
'b' => array(),
'blockquote' => array(
'cite' => true,
),
'cite' => array(),
'code' => array(),
'del' => array(
'datetime' => true,
),
'em' => array(),
'i' => array(),
'q' => array(
'cite' => true,
),
'strike' => array(),
'strong' => array(),
);
wp_kses($str, $allowed_html);
return trim($str);
}
if ( ! function_exists( 'fordummies_import_files' ) ) :
function fordummies_import_files() {
$important_notice = 'Important Notes:
We recommend to run the Demo Import on a clean WordPress installation.
To reset your installation (if the import fails) we recommend Wordpress Reset Plugin.
Do not run the Demo Import multiple times, it will result in duplicated content.
After you import this demo, you will have to setup the slider separately.';
return array(
array(
'import_file_name' => 'Demo Import 1',
'import_file_url' => 'http://www.themefordummies.com/demo/demo-content.xml',
'import_widget_file_url' => 'http://www.themefordummies.com/demo/widgets.json',
'import_customizer_file_url' => 'http://www.themefordummies.com/demo/customizer.dat',
'import_notice' => $important_notice,
),
);
}
endif;
add_filter( 'pt-ocdi/import_files', 'fordummies_import_files' );
if ( ! function_exists( 'fordummies_after_import' ) ) :
function fordummies_after_import( $selected_import ) {
//Set Menu
$social_menu = get_term_by('name', 'social menu', 'nav_menu');
$main_menu = get_term_by('name', 'Main Menu', 'nav_menu');
set_theme_mod( 'nav_menu_locations' , array(
'primary' => $main_menu->term_id,
'top-menu' => $main_menu->term_id,
'social' => $social_menu->term_id
)
);
// Assign front page and posts page (blog page).
$front_page_id = get_page_by_title( 'Home' );
$blog_page_id = get_page_by_title( 'Blog' );
update_option( 'show_on_front', 'page' );
update_option( 'page_on_front', $front_page_id->ID );
update_option( 'page_for_posts', $blog_page_id->ID );
}
add_action( 'pt-ocdi/after_import', 'fordummies_after_import' );
endif;
require_once( trailingslashit( get_template_directory() ) . 'trt-customize-pro/class-customize.php' );
function fordummies_admin_notice() {
echo '';
echo '
';
echo '';
$bd_msg = '
Welcome. Theme For Dummies was activated!
';
$bd_msg .= '
For details and help, take a look at our Help Page at your left menu Appearance => For Dummies Help';
$bd_url = ' or click here';
$bd_msg .= '
';
$bd_msg .= $bd_url;
echo $bd_msg;
echo "";
echo "
";
}
function fordummies_theme_was_activated() {
add_action('admin_notices', 'fordummies_admin_notice');
$bill_installed = trim(get_option( 'bill_installed',''));
if(empty($bill_installed)){
add_option( 'bill_installed', time() );
update_option( 'bill_installed', time() );
}
}
if(is_admin())
{
add_action("after_switch_theme", "fordummies_theme_was_activated");
require_once (FORDUMMIESPATH . '/inc/help.php');
require_once (FORDUMMIESPATH . '/inc/activated-manager.php');
if(memory_status())
require_once (FORDUMMIESPATH . '/inc/feedback.php');
require_once (FORDUMMIESPATH . '/inc/feedback-last.php');
function fordummies_custom_dashboard_help() {
echo '';
echo '';
echo '';
echo '';
$bd_msg = 'For details and help, take a look at our Help Page at your left menu';
$bd_msg .= '
';
$bd_msg .= 'Appearance => For Dummies Help';
$bd_msg .= '
';
$bd_msg .= ' Help Page';
$bd_msg .= ' ';
$bd_url = ' Visit Our Site';
$bd_msg .= $bd_url;
$bd_msg .= ' ';
$bd_url = 'OnLine Guide';
$bd_msg .= $bd_url;
// $bd_msg .= ', Support, Demo Video and more.';
echo $bd_msg;
echo "";
echo "
";
}
function fordummies_add_dashboard_widgets()
{
add_meta_box('fordummies-dashboard', 'For Dummies Theme Help and Support', 'fordummies_custom_dashboard_help', 'dashboard', 'normal', 'high');
}
add_action("wp_dashboard_setup", "fordummies_add_dashboard_widgets");
function fordummies_memory_notice() {
if(isset($_GET["tab"]))
{
if (strip_tags($_GET["tab"]) == 'memory')
return;
}
echo '';
echo '';
$bd_msg = '
Theme For Dummies running in save memory mode.
';
$bd_msg .= '
To release all theme power, please, increase the WordPress memory limit.';
$bd_msg .= ' For details and help, take a look at our Help Page (memory tab) at your left menu Appearance => For Dummies Help';
$bd_url = ' or click here';
$bd_msg .= '
';
$bd_msg .= $bd_url;
echo $bd_msg;
echo "";
echo "
";
}
if(! memory_status())
add_action( 'admin_notices', 'fordummies_memory_notice' );
} // end If admin
if (get_site_option('fordummies_update_theme', '0') == '1')
add_filter( 'auto_update_theme', '__return_true' );
function memory_status()
{
$r = false;
if(defined("WP_MEMORY_LIMIT"))
{
$wplimit = trim(WP_MEMORY_LIMIT) ;
$wplimit = substr($wplimit,0,strlen($wplimit)-1);
if($wplimit >= 128)
$r = true;
}
return $r;
}
?>