php define("THEMENAME", "Aphrodite"); define("SHORTNAME", "pp"); define("SKINSHORTNAME", "ps"); define("THEMEVERSION", "1.5"); define("THEMEDEMO", false); define("THEMEDEMOSLIDEOFFSET", 3); define("THEMEDOMAIN", THEMENAME.'Language'); define("THEMEDEMOURL", 'http://themes.themegoods.com/aphrodite_wp'); //Get default WP uploads folder $wp_upload_arr = wp_upload_dir(); define("THEMEUPLOAD", $wp_upload_arr['basedir']."/".strtolower(THEMENAME)."/"); define("THEMEUPLOADURL", $wp_upload_arr['baseurl']."/".strtolower(THEMENAME)."/"); //Define exclude fields from skin option $pp_exclude_from_skin_arr = array(SHORTNAME.'_sidebar0', SHORTNAME.'_sidebar', SHORTNAME.'_homepage_content', SHORTNAME.'_homepage_content_sort_data', SHORTNAME.'_contact_form', SHORTNAME.'_contact_form_sort_data', SHORTNAME.'_facebook_username', SHORTNAME.'_twitter_username', SHORTNAME.'_google_username', SHORTNAME.'_flickr_username', SHORTNAME.'_youtube_username', SHORTNAME.'_vimeo_username', SHORTNAME.'_tumblr_username', SHORTNAME.'_digg_username', SHORTNAME.'_dribbble_username', SHORTNAME.'_linkedin_username', SHORTNAME.'_contact_email', SHORTNAME.'_seo_enable', SHORTNAME.'_seo_home_title', SHORTNAME.'_seo_meta_key', SHORTNAME.'_seo_meta_desc', SHORTNAME.'_advance_combine_js', SHORTNAME.'_advance_combine_css', SHORTNAME.'_advance_restore_default', SHORTNAME.'_advance_clear_cache'); load_theme_textdomain( THEMEDOMAIN, TEMPLATEPATH.'/languages' ); $locale = get_locale(); $locale_file = TEMPLATEPATH."/languages/$locale.php"; if ( is_readable($locale_file) ) require_once($locale_file); if(!is_dir(THEMEUPLOAD)) { mkdir(THEMEUPLOAD); } //If restore default theme settings if(is_admin() && isset($_POST['pp_restore_flg']) && !empty($_POST['pp_restore_flg']) && $_GET["page"] == "functions.php") { global $wpdb; //Inject SQL for default setting include_once(TEMPLATEPATH . "/restore.php"); } //If activate skin if(is_admin() && isset($_POST['method']) && !empty($_POST['method']) && $_POST['method'] == 'activate_skin' && !empty($_POST['skin_id'])) { wp_reset_query(); global $wpdb; $pp_skins_obj = array(); $wpdb->query("SELECT * FROM `".$wpdb->prefix."options` WHERE `option_name` = '".$_POST['skin_id']."'"); $pp_skins_obj = $wpdb->last_result; $skin_settings_arr = unserialize($pp_skins_obj[0]->option_value); foreach($skin_settings_arr['settings'] as $key => $skin_setting) { if(!in_array($key, $pp_exclude_from_skin_arr)) { if(!empty($skin_setting)) { update_option( $key, $skin_setting ); } else { delete_option( $key ); } } } exit; } //If delete skin if(is_admin() && isset($_POST['method']) && !empty($_POST['method']) && $_POST['method'] == 'remove_skin' && !empty($_POST['skin_id'])) { delete_option( $_POST['skin_id'] ); exit; } //If delete sidebar if(is_admin() && isset($_POST['sidebar_id']) && !empty($_POST['sidebar_id'])) { $current_sidebar = get_option('pp_sidebar'); if(is_admin() && isset($current_sidebar[ $_POST['sidebar_id'] ])) { unset($current_sidebar[ $_POST['sidebar_id'] ]); update_option( "pp_sidebar", $current_sidebar ); } echo 1; exit; } //If clear cache if(is_admin() && isset($_POST['method']) && !empty($_POST['method']) && $_POST['method'] == 'clear_cache') { if(is_admin() && file_exists(THEMEUPLOAD."combined.js")) { unlink(THEMEUPLOAD."combined.js"); } if(is_admin() && file_exists(THEMEUPLOAD."combined.css")) { unlink(THEMEUPLOAD."combined.css"); } exit; } //If delete image if(is_admin() && isset($_POST['field_id']) && !empty($_POST['field_id']) && isset($_GET["page"]) && $_GET["page"] == "functions.php" ) { delete_option( $_POST['field_id'] ); echo 1; exit; } /* * Setup main navigation menu */ add_action( 'init', 'register_my_menu' ); function register_my_menu() { register_nav_menu( 'primary-menu', __( 'Primary Menu' ) ); } if ( function_exists( 'add_theme_support' ) ) { // Setup thumbnail support add_theme_support( 'post-thumbnails' ); add_theme_support( 'automatic-feed-links' ); } // Setup custom background support, if boxed layout $pp_theme_layout = get_option('pp_theme_layout'); if(function_exists('add_custom_background') && $pp_theme_layout == 'boxed') { add_custom_background(); } if ( function_exists( 'add_image_size' ) ) { add_image_size( 'slide', 1000, 400, true ); add_image_size( 'slide_small', 700, 350, true ); add_image_size( 'slide_macbook', 496, 314, true ); add_image_size( 'portfolio1', 920, 400, true ); add_image_size( 'portfolio2', 460, 300, true ); add_image_size( 'portfolio3', 305, 200, true ); add_image_size( 'portfolio3l', 195, 130, true ); add_image_size( 'portfolio4', 220, 140, true ); add_image_size( 'portfolio_single', 960, 9999, true ); add_image_size( 'blog', 570, 350, true ); add_image_size( 'blog_f', 865, 400, true ); } /** * Setup all theme's library **/ /** * Setup admin setting **/ include (TEMPLATEPATH . "/lib/admin.lib.php"); include (TEMPLATEPATH . "/lib/twitter.lib.php"); /** * Setup Sidebar **/ include (TEMPLATEPATH . "/lib/sidebar.lib.php"); //Get JSmin class include (TEMPLATEPATH . "/lib/jsmin.lib.php"); //Get CSSmin class include (TEMPLATEPATH . "/lib/cssmin.lib.php"); //Get custom function include (TEMPLATEPATH . "/lib/custom.lib.php"); //Get custom shortcode include (TEMPLATEPATH . "/lib/shortcode.lib.php"); // Setup theme custom widgets include (TEMPLATEPATH . "/lib/widgets.lib.php"); $pp_handle = opendir(TEMPLATEPATH.'/fields'); while (false!==($pp_file = readdir($pp_handle))) { if ($pp_file != "." && $pp_file != ".." && $pp_file != ".DS_Store") { include (TEMPLATEPATH . "/fields/".$pp_file); } } closedir($pp_handle); function pp_add_admin() { global $themename, $shortname, $options, $pp_exclude_from_skin_arr; if ( isset($_GET['page']) && $_GET['page'] == basename(__FILE__) ) { if ( isset($_REQUEST['action']) && 'save' == $_REQUEST['action'] ) { foreach ($options as $value) { if(is_admin() && $value['type'] != 'image' && isset($value['id']) && isset($_REQUEST[ $value['id'] ])) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } } foreach ($options as $value) { if( isset($value['id']) && isset( $_REQUEST[ $value['id'] ] )) { if($value['id'] != $shortname."_sidebar0") { //if sortable type if(is_admin() && $value['type'] == 'sortable') { $sortable_array = serialize($_REQUEST[ $value['id'] ]); $sortable_data = $_REQUEST[ $value['id'].'_sort_data']; $sortable_data_arr = explode(',', $sortable_data); $new_sortable_data = array(); foreach($sortable_data_arr as $key => $sortable_data_item) { $sortable_data_item_arr = explode('_', $sortable_data_item); if(isset($sortable_data_item_arr[0])) { $new_sortable_data[] = $sortable_data_item_arr[0]; } } update_option( $value['id'], $sortable_array ); update_option( $value['id'].'_sort_data', serialize($new_sortable_data) ); } elseif(is_admin() && $value['type'] == 'font') { if(!empty($_REQUEST[ $value['id'] ])) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); update_option( $value['id'].'_family', $_REQUEST[ $value['id'].'_family' ] ); } else { delete_option( $value['id'] ); delete_option( $value['id'].'_family' ); } } else { if(is_admin()) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } } } elseif(is_admin() && isset($_REQUEST[ $value['id'] ]) && !empty($_REQUEST[ $value['id'] ])) { //get last sidebar serialize array $current_sidebar = get_option($shortname."_sidebar"); $current_sidebar[ $_REQUEST[ $value['id'] ] ] = $_REQUEST[ $value['id'] ]; update_option( $shortname."_sidebar", $current_sidebar ); } } else { if(is_admin()) { delete_option( $value['id'] ); } } } if(is_admin() && isset($_POST['pp_save_skin_flg']) && !empty($_POST['pp_save_skin_flg']) && $_GET["page"] == "functions.php") { global $wpdb; $ppskin_id = SKINSHORTNAME."_".time(); $wpdb->query("SELECT * FROM `".$wpdb->prefix."options` WHERE `option_name` LIKE '%pp_%'"); $pp_settings_obj = $wpdb->last_result; $serilize_settings_arr = array(); $serilize_settings_arr['id'] = $ppskin_id; $serilize_settings_arr['name'] = $_POST['pp_save_skin_name']; foreach ($pp_settings_obj as $pp_setting) { if(!in_array($pp_setting->option_name, $pp_exclude_from_skin_arr)) { $serilize_settings_arr['settings'][$pp_setting->option_name] = $pp_setting->option_value; } } add_option($ppskin_id, $serilize_settings_arr); header("Location: admin.php?page=functions.php&saved=true#pp_panel_skins"); exit; } header("Location: admin.php?page=functions.php&saved=true".$_REQUEST['current_tab']); } } add_menu_page('Theme Setting', 'Theme Setting', 'administrator', basename(__FILE__), 'pp_admin', get_admin_url().'/images/generic.png'); } function pp_add_init() { $file_dir=get_bloginfo('template_directory'); wp_enqueue_style('thickbox'); wp_enqueue_style("functions", $file_dir."/functions/functions.css", false, "1.0", "all"); wp_enqueue_style("jquery-ui", $file_dir."/functions/jquery-ui/css/ui-lightness/jquery-ui-1.8.10.custom.css", false, "1.0", "all"); wp_enqueue_style("colorpicker_css", $file_dir."/functions/colorpicker/css/colorpicker.css", false, "1.0", "all"); wp_enqueue_style("uniform.aristo", $file_dir."/functions/uniform/css/uniform.aristo.css", false, "1.0", "all"); $pp_font = get_option('pp_font'); if(!empty($pp_font)) { wp_enqueue_style('google_fonts', "http://fonts.googleapis.com/css?family=".$pp_font."&subset=latin,cyrillic", false, "", "all"); } wp_enqueue_script('media-upload'); wp_enqueue_script('thickbox'); wp_enqueue_script("jquery-ui-core"); wp_enqueue_script("jquery-ui-sortable"); wp_enqueue_script("colorpicker_script", $file_dir."/functions/colorpicker/js/colorpicker.js", false, "1.0"); wp_enqueue_script("eye_script", $file_dir."/functions/colorpicker/js/eye.js", false, "1.0"); wp_enqueue_script("utils_script", $file_dir."/functions/colorpicker/js/utils.js", false, "1.0"); wp_enqueue_script("iphone_checkboxes", $file_dir."/functions/iphone-style-checkboxes.js", false, "1.0"); wp_enqueue_script("jslider_depend", $file_dir."/functions/jquery.dependClass.js", false, "1.0"); wp_enqueue_script("jslider", $file_dir."/functions/jquery.slider-min.js", false, "1.0"); wp_enqueue_script("jquery.uniform.min", $file_dir."/functions/uniform/jquery.uniform.min.js", false, "1.0"); wp_enqueue_script("cufon", get_stylesheet_directory_uri()."/js/cufon.js", false); wp_enqueue_script("rm_script", $file_dir."/functions/rm_script.js", false, "1.0"); } function pp_admin() { global $themename, $shortname, $options; $i=0; $pp_font_family = get_option('pp_font_family'); ?>
Updating...
Successfully
Update
php if(isset($_GET['saved']) == 'true') { ?> php } ?>

Theme Setting

For future updates follow me @themeforest or @twitter




php $cache_dir = TEMPLATEPATH.'/cache'; $data_dir = THEMEUPLOAD; if(!is_writable($cache_dir)) { ?>

The path php echo $cache_dir; ?> is not writable, please login with your FTP account and make it writable (chmod 777) otherwise all images won't display.

php } ?> php if ( isset($_REQUEST['activate']) && $_REQUEST['activate'] ) { ?>

php echo THEMENAME; ?> Theme activated

What's next?

  1. The default theme settings are saved but you can navigate to each tab and change them.
  2. Setup homepage's slider via Slides > Add New Slide
  3. Go to Pages and add some ex. blog, portfolio, services etc.
  4. Setup blog posts via Posts > Add New
  5. Setup portfolio items via Portfolios > Add New Portfolio


*Note: There is the theme's manual in /manual/index.html it will help you get through all theme features.


php } ?>
php foreach ($options as $value) { /*print '
';
			print_r($value);
			print '
';*/ $active = ''; if($value['type'] == 'section') { if($value['name'] == 'General') { $active = 'nav-tab-active'; } echo ''.str_replace('-', ' ', $value['name']).''; } } ?>
php // Get Google font list $pp_font_arr = array(); $font_cache_path = TEMPLATEPATH.'/cache/gg_fonts.cache'; if(file_exists($font_cache_path)) { $font_cache_timer = intval((time()-filemtime($font_cache_path))/60); } else { $font_cache_timer = 0; } $file = file_get_contents($font_cache_path, true); $pp_font_arr = unserialize($file); foreach ($options as $value) { switch ( $value['type'] ) { case "open": ?> php break; case "close": ?>
php break; case "title": ?>
php break; case 'text': //if sidebar input then not show default value if($value['id'] != $shortname."_sidebar0") { $default_val = get_option( $value['id'] ); } else { $default_val = ''; } ?>

" php if(!empty($value['size'])) { echo 'style="width:'.$value['size'].'"'; } ?> /> php echo $value['desc']; ?>
php if($value['id'] == $shortname."_sidebar0") { $current_sidebar = get_option($shortname."_sidebar"); if(!empty($current_sidebar)) { ?>
Sidebar Manager
    php $url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; foreach($current_sidebar as $sidebar) { ?>
  • php echo $sidebar; ?>
    Delete
  • php } ?>
php } } ?>
php break; case 'password': ?>

" php if(!empty($value['size'])) { echo 'style="width:'.$value['size'].'"'; } ?> /> php echo $value['desc']; ?>
php break; break; case 'image': ?>

php echo $value['desc']; ?>
php $current_value = get_option( $value['id'] ); if(!is_bool($current_value) && !empty($current_value)) { ?> php } ?>
php break; case 'jslider': ?>

" php if(!empty($value['size'])) { echo 'style="width:'.$value['size'].'"'; } ?> />
php echo $value['desc']; ?>
php break; case 'colorpicker': ?>

" php if(!empty($value['size'])) { echo 'style="width:'.$value['size'].'"'; } ?> class="color_picker"/>
url(php echo get_stylesheet_directory_uri(); ?>/functions/images/trigger.png) center no-repeat;"> 
php echo $value['desc']; ?>
php break; case 'textarea': ?>

php echo $value['desc']; ?>
php break; case 'select': ?>

php echo $value['desc']; ?>
php break; case 'font': ?>



Sample Text
You can also view preview of all fonts from Google web fonts
php break; case 'radio': ?>

php foreach ($value['options'] as $key => $option) { ?>
value="php echo $key; ?>"/>php echo $option; ?>
php } ?>
php echo $value['desc']; ?>
php break; case 'skin': global $wpdb; $pp_skins_obj = array(); if(is_admin()) { $wpdb->query("SELECT * FROM `".$wpdb->prefix."options` WHERE `option_name` LIKE '%".SKINSHORTNAME."_%'"); $pp_skins_obj = $wpdb->last_result; } $api_url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>
php echo $value['desc']; ?>

    php foreach ($pp_skins_obj as $key => $pp_skin) { //Get skin name $pp_skin_arr = unserialize($pp_skin->option_value); //pp_debug(unserialize($pp_skin_arr)); ?>
  • php echo $pp_skin_arr['name']; ?>
    x Activate
  • php } ?>
php break; case 'sortable': ?>

php $sortable_array = unserialize(get_option( $value['id'] )); $current = 1; if(!empty($value['options'])) { ?> Add php } ?>
php echo $value['sort_title']; ?>
Drag each item for sorting.
    php $sortable_data_array = unserialize(get_option( $value['id'].'_sort_data' )); if(!empty($sortable_data_array)) { foreach($sortable_data_array as $key => $sortable_data_item) { if(!empty($sortable_data_item)) { ?>
  • php echo $value['options'][$sortable_data_item]; ?>
    x
  • php } } } ?>


php break; case "checkbox": ?>

php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?> /> php echo $value['desc']; ?>
php break; case "iphone_checkboxes": ?>

php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?> /> php echo $value['desc']; ?>
php break; case "html": ?>

php echo $value['html']; ?> php echo $value['desc']; ?>
php break; case "section": $i++; ?>

php echo $value['name']; ?>

php break; } } ?>
php } add_action('admin_init', 'pp_add_init'); add_action('admin_menu', 'pp_add_admin'); /** * Setup all theme's plugins **/ // Setup shortcode generator plugin include (TEMPLATEPATH . "/plugins/shortcode_generator.php"); // Setup Gallery Plugin include (TEMPLATEPATH . "/plugins/shiba-media-library/shiba-media-library.php"); function pp_formatter($content) { $new_content = ''; /* Matches the contents and the open and closing tags */ $pattern_full = '{(\[raw\].*?\[/raw\])}is'; /* Matches just the contents */ $pattern_contents = '{\[raw\](.*?)\[/raw\]}is'; /* Divide content into pieces */ $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE); /* Loop over pieces */ foreach ($pieces as $piece) { /* Look for presence of the shortcode */ if (preg_match($pattern_contents, $piece, $matches)) { /* Append to content (no formatting) */ $new_content .= $matches[1]; } else { /* Format and append to content */ $new_content .= wptexturize(wpautop($piece)); } } return $new_content; } // Remove the 2 main auto-formatters remove_filter('the_content', 'wpautop'); remove_filter('the_content', 'wptexturize'); // Before displaying for viewing, apply this function add_filter('the_content', 'pp_formatter', 99); add_filter('widget_text', 'pp_formatter', 99); function pp_tag_cloud_filter($args = array()) { $args['smallest'] = 11; $args['largest'] = 11; $args['unit'] = 'px'; return $args; } add_filter('widget_tag_cloud_args', 'pp_tag_cloud_filter', 90); //Make widget support shortcode add_filter('widget_text', 'do_shortcode'); if (is_admin() && isset($_GET['activated']) && $_GET['activated']){ global $wpdb; // Run default settings include_once(TEMPLATEPATH . "/default_settings.php"); wp_redirect(admin_url("themes.php?page=functions.php&activate=true")); } ?>php /** * The Header for the template. * * @package WordPress */ $pp_theme_version = THEMEVERSION; session_start(); ?> > php $pp_seo_enable = get_option('pp_seo_enable'); if(!empty($pp_seo_enable)) { if(is_home()) { $pp_seo_home_title = get_option('pp_seo_home_title'); } else if(is_single()) { $page = get_page($post->ID); $current_page_id = $page->ID; $pp_seo_home_title = get_post_meta($current_page_id, 'post_seo_title', true); } } else { $pp_seo_home_title = ''; } if(empty($pp_seo_home_title)) { ?> php wp_title('‹', true, 'right'); ?>php bloginfo('name'); ?> php } else { ?> php echo $pp_seo_home_title; ?> php } ?> php if(!empty($pp_seo_enable)) { if(is_single()) { $page = get_page($post->ID); $current_page_id = $page->ID; $pp_seo_meta_desc = get_post_meta($current_page_id, 'post_seo_desc', true); } else { $pp_seo_meta_desc = get_option('pp_seo_meta_desc'); } } else { $pp_seo_meta_desc = ''; } if(!empty($pp_seo_meta_desc)) { ?> php } ?> php if(!empty($pp_seo_enable)) { if(is_single()) { $page = get_page($post->ID); $current_page_id = $page->ID; $pp_seo_meta_key = get_post_meta($current_page_id, 'post_seo_keyword', true); } else { $pp_seo_meta_key = get_option('pp_seo_meta_key'); } } else { $pp_seo_meta_key = ''; } if(!empty($pp_seo_meta_key)) { ?> php } ?> php /** * Get favicon URL **/ $pp_favicon = get_option('pp_favicon'); if(!empty($pp_favicon)) { ?> php } ?> php $pp_advance_combine_css = get_option('pp_advance_combine_css'); if(!empty($pp_advance_combine_css)) { if(!file_exists(THEMEUPLOAD."combined.css")) { $cssmin = new CSSMin(); $css_arr = array( TEMPLATEPATH.'/js/flexslider/flexslider.css', TEMPLATEPATH.'/js/fancybox/jquery.fancybox.css', ); $cssmin->addFiles($css_arr); // Set original CSS from all files $cssmin->setOriginalCSS(); $cssmin->compressCSS(); $css = $cssmin->printCompressedCSS(); file_put_contents(THEMEUPLOAD."combined.css", $css); } wp_enqueue_style("jqueryui_css", get_stylesheet_directory_uri()."/css/jqueryui/custom.css", false, $pp_theme_version, "all"); wp_enqueue_style("combined_css", THEMEUPLOADURL."combined.css", false, $pp_theme_version); wp_enqueue_style("screen_css", get_stylesheet_directory_uri()."/css/screen.css", false, $pp_theme_version, "all"); //Get global layout setting if(isset($_SESSION['pp_theme_layout'])) { $pp_theme_layout = $_SESSION['pp_theme_layout']; } else { $pp_theme_layout = get_option('pp_theme_layout'); } if($pp_theme_layout == 'boxed') { wp_enqueue_style("boxed_css", get_stylesheet_directory_uri()."/css/boxed.css", false, $pp_theme_version, "all"); } } else { wp_enqueue_style("jqueryui_css", get_stylesheet_directory_uri()."/css/jqueryui/custom.css", false, $pp_theme_version, "all"); wp_enqueue_style("flexslider_css", get_stylesheet_directory_uri()."/js/flexslider/flexslider.css", false, $pp_theme_version, "all"); wp_enqueue_style("screen_css", get_stylesheet_directory_uri()."/css/screen.css", false, $pp_theme_version, "all"); wp_enqueue_style("fancybox_css", get_stylesheet_directory_uri()."/js/fancybox/jquery.fancybox.css", false, $pp_theme_version, "all"); //Get global layout setting if(isset($_SESSION['pp_theme_layout'])) { $pp_theme_layout = $_SESSION['pp_theme_layout']; } else { $pp_theme_layout = get_option('pp_theme_layout'); } if($pp_theme_layout == 'boxed') { wp_enqueue_style("boxed_css", get_stylesheet_directory_uri()."/css/boxed.css", false, $pp_theme_version, "all"); } } ?> php wp_enqueue_script("jquery", get_stylesheet_directory_uri()."/js/jquery.js", false, $pp_theme_version); wp_enqueue_script("jquery_UI_js", get_stylesheet_directory_uri()."/js/jquery-ui.js", false, $pp_theme_version); wp_enqueue_script("swfobject.js", get_stylesheet_directory_uri()."/swfobject/swfobject.js", false, $pp_theme_version); if(isset($_SESSION['pp_font_family'])) { $pp_font = $_SESSION['pp_font_family']; } else { $pp_font = get_option('pp_font_family'); } $pp_font = urlencode($pp_font); if(!empty($pp_font)) { wp_enqueue_style('google_fonts', "http://fonts.googleapis.com/css?family=".$pp_font, false, "", "all"); } else { wp_enqueue_style('google_fonts', "http://fonts.googleapis.com/css?", false, "", "all"); } $js_path = TEMPLATEPATH."/js/"; $js_arr = array( 'fancybox/jquery.fancybox.pack.js', 'jquery.easing.js', 'gmap.js', 'jquery.validate.js', 'browser.js', 'jquery.isotope.js', 'flexslider/jquery.flexslider-min.js', 'reflection.js', 'jwplayer.js', 'hint.js', 'custom.js', ); $js = ""; $pp_advance_combine_js = get_option('pp_advance_combine_js'); if(!empty($pp_advance_combine_js)) { if(!file_exists(THEMEUPLOAD."combined.js")) { foreach($js_arr as $file) { if($file != 'jquery.js' && $file != 'jquery-ui.js') { $js .= JSMin::minify(file_get_contents($js_path.$file)); } } file_put_contents(THEMEUPLOAD."combined.js", $js); } wp_enqueue_script("combined_js", THEMEUPLOADURL."combined.js", false, $pp_theme_version); } else { foreach($js_arr as $file) { if($file != 'jquery.js' && $file != 'jquery-ui.js') { wp_enqueue_script($file, get_stylesheet_directory_uri()."/js/".$file, false, $pp_theme_version); } } } ?> php /* Always have wp_head() just before the closing * tag of your theme, or you will break many plugins, which * generally use this hook to add elements to such * as styles, scripts, and meta tags. */ wp_head(); ?> php //Get custom CSS template $pp_advance_enable_custom = get_option('pp_advance_enable_custom'); if(!empty($pp_advance_enable_custom)) { include (TEMPLATEPATH . "/templates/custom-css.php"); } ?> php /** * Get Current page object **/ $page = get_page($post->ID); /** * Get current page id **/ $current_page_id = ''; if(isset($page->ID)) { $current_page_id = $page->ID; } ?> php if(is_home() && $pp_slider_effect == 'no') { ?> title="page" php } ?>> php $pp_slider_timer = get_option('pp_slider_timer'); if(empty($pp_slider_timer)) { $pp_slider_timer = 5; } ?> php $pp_portfolio_sorting = get_option('pp_portfolio_sorting'); ?> php $pp_footer_style = get_option('pp_footer_style'); ?>




Erice

Photo Credit: Linda Leith

Welcome to my website. Here you will find a bio, news of upcoming events, and some background to my last book, Finding Rosa, as well as blurbs and extracts of reviews of my earlier works. You’ll also find ways to contact me and links to other related sites. Click on the links above to find what you’re looking for.

Click for information on upcoming readings and events.

Interview with Shelagh Rogers on The Next Chapter

Shelagh Rogers recently interviewed Caterina about her Mafia mystery, and what makes the crime novel an ideal genre for examining a society. Listen to it below.

The Sicilian Wife

SicilianWifeCover

The National Post has chosen The Sicilian Wife as one of its Best Books of the Year!
​# ​55. The Sicilian Wife, Caterina Edwards (Linda Leith Publishing, 280 pp; $20)
“Set in the contrasting climates of Sicily and Edmonton, this literary noir is a masterful tale of family, murder, and the inescapable pull of the past.”Read the Full Review

All Lit Up recommends The Sicilian Wife as one of its best mysteries of 2015
The Sicilian Wife by Caterina Edwards (Linda Leith Publishing)
“This noir-ish read about a Mafia princess doing her best to escape her crime family is part folk tale, part feminist critique, and all engrossing. Will Fulvia find a peaceful new life in Canada? Or will her husband’s murder on the Sicilian coast drag her right back in?Why We Chose It
Caterina Edwards’ literary mystery has all of the hallmarks of a fantastic Italian crime story. And we’re not alone in thinking it’s great: The Sicilian Wife is #55 on the National Post’s 99 Best Books of the Year.

Who Would Love This Book
This is the feminist answer for fans of The Godfather, with all the urgency and pacing of the classic film.”

Read the Full Review

Read more   Buy Now

Finding Rosa

download

A Mother with Alzheimer’s –

A Daughter’s Search for the Past

Wilfred Eggleston Award for Nonfiction (Writers Guild of Alberta) 2009

Bressani Prize for Writing about Immigration 2010

Shortlisted for The City of Edmonton Book of the Year Award

“Finding Rosa is a fascinating true story…a compelling work by a skilled writer who draws the reader along on two intensely personal journeys: Rosa’s and her own.”
-The Edmonton Journal

Read more

Books

Island of the Nightingales

Sunday, January 2, 2000
These are stories of women – pursuing a first love, giving birth, ministering to a dying mother – women searching for

identity and place and purpose in an international world of professors and…

The Lion’s Mouth

Saturday, January 2, 1993
Translated into French by Christiane Di Matteo and Jocelyn Doray and published as La Gueule du Lion in French by Balzac

Editions in 2000.

View More Books

For Book Clubs

I am open to attending book club meetings in person or by Skype. If you are interested, please contact me at CaterinaEdwards@gmail.com. To help your book club get started in discussing The Sicilian Wife, please see the accompanying book club questions.

Read more