* * Reference: {@link http://codex.wordpress.org/Child_Themes Codex: Child Themes} * * @package Thematic * @subpackage ThemeInit */ /** * Registers action hook: thematic_init * * @since Thematic 1.0 */ function thematic_init() { do_action('thematic_init'); } /** * thematic_theme_setup & childtheme_override_theme_setup * * Override: childtheme_override_theme_setup * * @since Thematic 1.0 */ if ( function_exists('childtheme_override_theme_setup') ) { /** * @ignore */ function thematic_theme_setup() { childtheme_override_theme_setup(); } } else { /** * thematic_theme_setup * * @todo review for impact of deprecations on child themes & fix comment blocks? * @since Thematic 1.0? */ function thematic_theme_setup() { global $content_width; /** * Set the content width based on the theme's design and stylesheet. * * Used to set the width of images and content. Should be equal to the width the theme * is designed for, generally via the style.css stylesheet. * * @since Thematic 1.0 */ if ( !isset($content_width) ) $content_width = 540; /** * Get Theme and Child Theme Data. * * Used to get title, version, author, URI of the parent and the child theme. * @todo: move wp_get_theme() directly to shortcodes and remove constants */ // WordPress 3.4 if ( function_exists( 'wp_get_theme' ) ) { $frameworkData = wp_get_theme( 'thematic' ); $framework_version = trim( $frameworkData->display('Version', false)); $framework_title = $frameworkData->display('Name', false); $framework_author = $frameworkData->display('Author', false); $framework_themeuri = $frameworkData->display('ThemeURI', false); $childthemeData = wp_get_theme(); $childtheme_version = trim( $childthemeData->display('Version', false) ); $childtheme_title = $childthemeData->display('Name', false); $childtheme_author = $childthemeData->display('Author', false); $childtheme_themeuri = $childthemeData->display('ThemeURI', false); // WordPress 3.3 // Credits: Joern Kretzschmar } else { $frameworkData = get_theme_data( get_template_directory() . '/style.css' ); $framework_version = trim( $frameworkData['Version'] ); $framework_title = $frameworkData['Title']; $framework_author = $frameworkData['Author']; $framework_themeuri = $frameworkData['URI']; $childthemeData = get_theme_data( get_stylesheet_directory() . '/style.css' ); $childtheme_version = trim( $childthemeData['Version'] ); $childtheme_title = $childthemeData['Name']; $childtheme_author = $childthemeData['Author']; $childtheme_themeuri = $childthemeData['URI']; } if ( !$framework_version ) $framework_version = "unknown"; if ( !$childtheme_version ) $childtheme_version = "unknown"; if ( !defined( 'THEMATIC_THEMENAME' ) ) define( 'THEMATIC_THEMENAME', $framework_title ); if ( !defined('THEMATIC_THEMEAUTHOR') ) define( 'THEMATIC_THEMEAUTHOR', $framework_author ); if ( !defined( 'THEMATIC_THEMEURI') ) define( 'THEMATIC_THEMEURI', $framework_themeuri ); if ( !defined( 'THEMATIC_VERSION' ) ) define( 'THEMATIC_VERSION', $framework_version ); define( 'THEMATIC_TEMPLATENAME', $childtheme_title ); define( 'THEMATIC_TEMPLATEAUTHOR', $childtheme_author ); define( 'THEMATIC_TEMPLATEURI', $childtheme_themeuri ); define( 'THEMATIC_TEMPLATEVERSION', $childtheme_version ); // set feed links handling // If you set this to TRUE, thematic_show_rss() and thematic_show_commentsrss() are used instead of add_theme_support( 'automatic-feed-links' ) if ( !defined('THEMATIC_COMPATIBLE_FEEDLINKS') ) define( 'THEMATIC_COMPATIBLE_FEEDLINKS', false ); // set comments handling for pages, archives and links // If you set this to TRUE, comments only show up on pages with a key/value of "comments" if ( !defined( 'THEMATIC_COMPATIBLE_COMMENT_HANDLING') ) define( 'THEMATIC_COMPATIBLE_COMMENT_HANDLING', false ); // set body class handling to WP body_class() // If you set this to TRUE, Thematic will use thematic_body_class instead if ( !defined( 'THEMATIC_COMPATIBLE_BODY_CLASS') ) define( 'THEMATIC_COMPATIBLE_BODY_CLASS', false ); // set post class handling to WP post_class() // If you set this to TRUE, Thematic will use thematic_post_class instead if ( !defined( 'THEMATIC_COMPATIBLE_POST_CLASS') ) define( 'THEMATIC_COMPATIBLE_POST_CLASS', false ); // If you set this to TRUE, Thematic will use it's legacy comment form if ( !defined('THEMATIC_COMPATIBLE_COMMENT_FORM') ) define( 'THEMATIC_COMPATIBLE_COMMENT_FORM', false ); // Check for MultiSite define( 'THEMATIC_MB', is_multisite() ); // Create the feedlinks if ( !( THEMATIC_COMPATIBLE_FEEDLINKS ) ) add_theme_support( 'automatic-feed-links' ); if ( apply_filters( 'thematic_post_thumbs', true ) ) add_theme_support( 'post-thumbnails' ); add_theme_support( 'thematic_superfish' ); // Path constants define( 'THEMATIC_LIB', get_template_directory() . '/library' ); // Create Theme Options Page require_once ( THEMATIC_LIB . '/extensions/theme-options.php' ); // Load legacy functions require_once ( THEMATIC_LIB . '/legacy/deprecated.php' ); // Load widgets require_once ( THEMATIC_LIB . '/extensions/widgets.php' ); // Load custom header extensions require_once ( THEMATIC_LIB . '/extensions/header-extensions.php' ); // Load custom content filters require_once ( THEMATIC_LIB . '/extensions/content-extensions.php' ); // Load custom Comments filters require_once ( THEMATIC_LIB . '/extensions/comments-extensions.php' ); // Load custom discussion filters require_once ( THEMATIC_LIB . '/extensions/discussion-extensions.php' ); // Load custom Widgets require_once ( THEMATIC_LIB . '/extensions/widgets-extensions.php' ); // Load the Comments Template functions and callbacks require_once ( THEMATIC_LIB . '/extensions/discussion.php' ); // Load custom sidebar hooks require_once ( THEMATIC_LIB . '/extensions/sidebar-extensions.php' ); // Load custom footer hooks require_once ( THEMATIC_LIB . '/extensions/footer-extensions.php' ); // Add Dynamic Contextual Semantic Classes require_once ( THEMATIC_LIB . '/extensions/dynamic-classes.php' ); // Need a little help from our helper functions require_once ( THEMATIC_LIB . '/extensions/helpers.php' ); // Load shortcodes require_once ( THEMATIC_LIB . '/extensions/shortcodes.php' ); // Adds filters for the description/meta content in archive templates add_filter( 'archive_meta', 'wptexturize' ); add_filter( 'archive_meta', 'convert_smilies' ); add_filter( 'archive_meta', 'convert_chars' ); add_filter( 'archive_meta', 'wpautop' ); // Remove the WordPress Generator - via http://blog.ftwr.co.uk/archives/2007/10/06/improving-the-wordpress-generator/ function thematic_remove_generators() { return ''; } if ( apply_filters( 'thematic_hide_generators', true ) ) add_filter( 'the_generator', 'thematic_remove_generators' ); // Translate, if applicable load_theme_textdomain( 'thematic', THEMATIC_LIB . '/languages' ); $locale = get_locale(); $locale_file = THEMATIC_LIB . "/languages/$locale.php"; if ( is_readable($locale_file) ) require_once ($locale_file); } } add_action('after_setup_theme', 'thematic_theme_setup', 10); /** * Registers action hook: thematic_child_init * * @since Thematic 1.0 */ function thematic_child_init() { do_action('thematic_child_init'); } add_action('after_setup_theme', 'thematic_child_init', 20); if ( function_exists('childtheme_override_init_navmenu') ) { /** * @ignore */ function thematic_init_navmenu() { childtheme_override_init_navmenu(); } } else { /** * Register primary nav menu * * Override: childtheme_override_init_navmenu * Filter: thematic_primary_menu_id * Filter: thematic_primary_menu_name */ function thematic_init_navmenu() { register_nav_menu( apply_filters('thematic_primary_menu_id', 'primary-menu'), apply_filters('thematic_primary_menu_name', __( 'Primary Menu', 'thematic' ) ) ); } } add_action('init', 'thematic_init_navmenu');