// Add Featured Image to Post $image_url = 'http://s.wordpress.org/style/images/wp-header-logo.png'; // Define the image URL here $upload_dir = wp_upload_dir(); // Set upload folder $image_data = file_get_contents($image_url); // Get image data $filename = basename($image_url); // Create image file name // Check folder permission and define file location if( wp_mkdir_p( $upload_dir['path'] ) ) { $file = $upload_dir['path'] . '/' . $filename; } else { $file = $upload_dir['basedir'] . '/' . $filename; } // Create the image file on the server file_put_contents( $file, $image_data ); // Check image file type $wp_filetype = wp_check_filetype( $filename, null ); // Set attachment data $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => sanitize_file_name( $filename ), 'post_content' => '', 'post_status' => 'inherit' ); // Create the attachment $attach_id = wp_insert_attachment( $attachment, $file, $post_id ); // Include image.php require_once(ABSPATH . 'wp-admin/includes/image.php'); // Define attachment metadata $attach_data = wp_generate_attachment_metadata( $attach_id, $file ); // Assign metadata to attachment wp_update_attachment_metadata( $attach_id, $attach_data ); // And finally assign featured image to post set_post_thumbnail( $post_id, $attach_id );
// allow BGN for WooCommerce and PayPal add_filter( 'woocommerce_currencies', 'add_bgn_currency' ); function add_bgn_currency( $currencies ) { $currencies['BGN'] = __( 'Bulgarian Lev (лв.)', 'woocommerce' ); return $currencies; } add_filter('woocommerce_currency_symbol', 'add_bgn_currency_symbol', 10, 2); function add_bgn_currency_symbol( $currency_symbol, $currency ) { switch( $currency ) { case 'BGN': $currency_symbol = 'лв.'; break; } return $currency_symbol; } // allow BGN for WooCommerce and PayPal add_filter( 'woocommerce_paypal_supported_currencies', 'add_bgn_paypal_valid_currency' ); function add_bgn_paypal_valid_currency( $currencies ) { array_push ( $currencies , 'BGN' ); return $currencies; } // Convert BGN to EUR for PayPal payments add_filter('woocommerce_paypal_args', 'convert_bgn_to_eur'); function convert_bgn_to_eur($paypal_args){ if ( $paypal_args['currency_code'] == 'BGN'){ $convert_rate = 1.955; //set the converting rate $paypal_args['currency_code'] = 'EUR'; //change BGN to EUR $i = 1; while (isset($paypal_args['amount_' . $i])) { $paypal_args['amount_' . $i] = round( $paypal_args['amount_' . $i] / $convert_rate, 2); ++$i; } if ( $paypal_args['discount_amount_cart'] > 0 ) { $paypal_args['discount_amount_cart'] = round( $paypal_args['discount_amount_cart'] / $convert_rate, 2); } } return $paypal_args; }
Отворете functions.php на Вашата тема и поставете следния код:
require get_template_directory() . '/widgets/agenda.php';
agenda.php
<?php class agenda_widget extends WP_Widget { function agenda_widget() { parent::WP_Widget(false, $name = 'Get posts from different post types'); } function widget($args, $instance){ extract( $args ); $title = apply_filters('widget_title', $instance['title']); $posttype = $instance['posttype'] ? $instance['posttype'] : 'post'; $orderby = $instance['orderby'] ? $instance['orderby'] : 'ID'; $orderbyad = $instance['orderbyad'] ? $instance['orderbyad'] : 'ASC'; $limit = $instance['limit'] ? $instance['limit'] : 5; $bottom = $instance['bottom']; $args = array( 'posts_per_page' => $limit, 'orderby' => $orderby, 'order'=>$orderbyad, 'post_type' => $posttype); query_posts($args); $trainingen = get_posts( $args ); ?> <?php echo $before_widget; ?> <div class="widget-agenda"> <h3><?php echo $title ?></h3> <ul> <?php foreach ($trainingen as $training): ?> <?php if($training->dates) $dates = json_decode($training->dates) ?> <li><a href="<?php echo get_permalink($training->ID)?>"><?php //echo date_i18n(get_option("date_format"), strtotime($dates[0])) ?><?php _e($training->post_title); ?></a></li> <?php endforeach; ?> </ul> </div> <?php echo $after_widget; ?> <?php } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['posttype'] = strip_tags($new_instance['posttype']); $instance['orderby'] = strip_tags($new_instance['orderby']); $instance['orderbyad'] = strip_tags($new_instance['orderbyad']); $instance['limit'] = strip_tags($new_instance['limit']); return $instance; } function form($instance){ $title = esc_attr($instance['title']); $posttype = esc_attr($instance['posttype']); $orderby = esc_attr($instance['orderby']); $orderbyad = esc_attr($instance['orderbyad']); $limit = esc_attr($instance['limit']); ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Select Post Type:'); ?></label> <? $args = array( 'public' => true, '_builtin' => false ); $output = 'names'; // names or objects, note names is the default $operator = 'and'; // 'and' or 'or' $post_types = get_post_types( $args, $output, $operator ); ?> <select id="<?php echo $this->get_field_id('posttype'); ?>" name="<?php echo $this->get_field_name('posttype'); ?>"> <option value="post" <? if ($posttype == 'post'){ ?>selected<? } ?>>post</option> <? foreach ( $post_types as $post_type ) { ?> <option value="<?=$post_type;?>" <? if ($posttype == $post_type){ ?>selected<? } ?>><?=$post_type;?></option> <? } ?> </select></br> <label for="<?php echo $this->get_field_id('orderby'); ?>"><?php _e('Order by'); ?></label>: <select id="<?php echo $this->get_field_id('orderby'); ?>" name="<?php echo $this->get_field_name('orderby'); ?>"> <option value="ID" <? if ($orderby == 'ID'){ ?>selected<? } ?>>ID</option> </select></br> <label for="<?php echo $this->get_field_id('orderbyad'); ?>"><?php _e('Order'); ?></label>: <select id="<?php echo $this->get_field_id('orderbyad'); ?>" name="<?php echo $this->get_field_name('orderbyad'); ?>"> <option value="ASC" <? if ($orderbyad == 'ASC'){ ?>selected<? } ?>>ASC</option> <option value="DESC" <? if ($orderbyad == 'DESC'){ ?>selected<? } ?>>DESC</option> </select> </p> <p> <label for="<?php echo $this->get_field_id('limit'); ?>"><?php _e('Limit'); ?></label> <input class="tiny-text" id="<?php echo $this->get_field_id('limit'); ?>" name="<?php echo $this->get_field_name('limit'); ?>" type="number" value="<?php echo $limit; ?>" /> </p> <?php } } add_action('widgets_init', create_function('', 'return register_widget("agenda_widget");')); ?>
Резултата от скрипта ще бъде следния:
Влезте в директорията на Вашата тема и поставете кода във файла functions.php:
require get_template_directory() . '/theme-options.php';
theme-options.php
<?php $themename = "Theme Option"; $shortname = "nt"; $categories = get_categories('hide_empty=0&orderby=name'); $wp_cats = array(); foreach ($categories as $category_list ) { $wp_cats[$category_list->cat_ID] = $category_list->cat_name; } array_unshift($wp_cats, "Choose a category"); $options = array ( array( "name" => $themename." Options", "type" => "title"), array( "name" => "General", "type" => "section"), array( "type" => "open"), array( "name" => "Logo URL", "desc" => "Enter the link to your logo image", "id" => $shortname."_logo", "type" => "text", "std" => ""), array( "name" => "Portfolio", "desc" => "Check this option to turn on Portfolio Type", "id" => $shortname."_portfolio", "type" => "checkbox", "std" => ""), array( "name" => "Clone post", "desc" => "Check this option to turn on/off Clone Post option", "id" => $shortname."_clonepost", "type" => "checkbox", "std" => ""), array( "name" => "Google Fonts", "desc" => "Activate Google fonts integration", "id" => $shortname."_googlefonts", "type" => "checkbox", "std" => ""), array( "type" => "close"), array( "name" => "Theme Styles", "type" => "section"), array( "type" => "open"), array( "name" => "Colour Scheme", "desc" => "Select the colour scheme for the theme", "id" => $shortname."_color_scheme", "type" => "select", "options" => array("blue", "red", "green"), "std" => "blue"), array( "name" => "Colour Scheme Panel", "desc" => "Select the colour scheme for Panel", "id" => $shortname."_color_scheme_admin", "type" => "select", "options" => array("white", "black"), "std" => "white"), array( "name" => "Background color", "desc" => "", "id" => $shortname."_backgroundcolor", "type" => "text", "std" => ""), array( "name" => "Menu color", "desc" => "", "id" => $shortname."_menucolor", "type" => "text", "std" => ""), array( "name" => "Menu color hover", "desc" => "", "id" => $shortname."_menucolorhover", "type" => "text", "std" => ""), array( "name" => "Custom CSS", "desc" => "Want to add any custom CSS code? Put in here, and the rest is taken care of. This overrides any other stylesheets. eg: a.button{color:green}", "id" => $shortname."_custom_css", "type" => "textarea", "std" => ""), array( "type" => "close"), array( "name" => "Homepage", "type" => "section"), array( "type" => "open"), array( "name" => "Homepage header image", "desc" => "Enter the link to an image used for the homepage header.", "id" => $shortname."_header_img", "type" => "text", "std" => ""), array( "name" => "Homepage featured category", "desc" => "Choose a category from which featured posts are drawn", "id" => $shortname."_feat_cat", "type" => "select", "options" => $wp_cats, "std" => "Choose a category"), array( "type" => "close"), array( "name" => "Footer", "type" => "section"), array( "type" => "open"), array( "name" => "Position Fixed", "desc" => "Check this option to make footer position fixed", "id" => $shortname."_footerfixed", "type" => "checkbox", "std" => ""), array( "name" => "Footer copyright text", "desc" => "Enter text used in the right side of the footer. It can be HTML", "id" => $shortname."_footer_text", "type" => "textarea", "std" => ""), array( "name" => "Google Analytics Code", "desc" => "You can paste your Google Analytics or other tracking code in this box. This will be automatically added to the footer.", "id" => $shortname."_ga_code", "type" => "textarea", "std" => ""), array( "name" => "Custom Favicon", "desc" => "A favicon is a 16x16 pixel icon that represents your site; paste the URL to a .ico image that you want to use as the image", "id" => $shortname."_favicon", "type" => "text", "std" => get_bloginfo('url') ."/favicon.ico"), array( "name" => "Feedburner URL", "desc" => "Feedburner is a Google service that takes care of your RSS feed. Paste your Feedburner URL here to let readers see it in your website", "id" => $shortname."_feedburner", "type" => "text", "std" => get_bloginfo('rss2_url')), array( "type" => "close") ); function getmoonstyles(){ ?> <style > <? if (get_option( 'nt_footerfixed' )) { ?> .site-footer { position:fixed; z-index: 9999; } .site-content { margin-bottom: 60px; margin-top: 72px; } <? }else{ ?>.site-footer { position: inherit !important; } .site-content { margin-top: 72px; } <? } ?> </style> <? } function mytheme_add_admin() { global $themename, $shortname, $options; if ( $_GET['page'] == basename(__FILE__) ) { if ( 'save' == $_REQUEST['action'] ) { foreach ($options as $value) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } foreach ($options as $value) { if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } } header("Location: admin.php?page=theme-options.php&saved=true"); die; } else if( 'reset' == $_REQUEST['action'] ) { foreach ($options as $value) { delete_option( $value['id'] ); } header("Location: admin.php?page=theme-options.php&reset=true"); die; } } add_menu_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin'); } function mytheme_add_init() { $file_dir=get_bloginfo('template_directory'); //if (get_option( 'nt_color_scheme_admin' ) == 'white') //{ wp_enqueue_style("functions", $file_dir."/functions/functions_wt.css", false, "1.0", "all"); $logostyle = 'logo_wt.png'; //}else{ // wp_enqueue_style("functions", $file_dir."/functions/functions_bk.css", false, "1.0", "all"); // $logostyle = 'logo_bk.png'; // } wp_enqueue_script("rm_script", $file_dir."/functions/rm_script.js", false, "1.0"); } function mytheme_admin() { global $themename, $shortname, $options; $i=0; if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings saved.</strong></p></div>'; if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings reset.</strong></p></div>'; // if (get_option( 'nt_color_scheme_admin' ) == 'white') //{ $logostyle = 'logo_wt.png'; //}else{ // $logostyle = 'logo_bk.png'; // } ?> <div class="wrap rm_wrap"> <div class="themelogo"><img src="<?=get_template_directory_uri() . '/functions/images/'.$logostyle;?>"></div> <h2 class="zsd"><?php echo $themename; ?></h2> <div class="rm_opts"> <form method="post"> <?php foreach ($options as $value) { switch ( $value['type'] ) { case "open": ?> <?php break; case "close": ?> </div> </div> <br /> <?php break; case "title": ?> <div class="zsd2">To easily use the <?php echo $themename;?> theme, you can use the menu below.</div> <?php break; case 'text': ?> <div class="rm_input rm_text"> <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> <input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id']) ); } else { echo $value['std']; } ?>" /> <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> </div> <?php break; case 'textarea': ?> <div class="rm_input rm_textarea"> <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> <textarea name="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" cols="" rows=""><?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id']) ); } else { echo $value['std']; } ?></textarea> <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> </div> <?php break; case 'select': ?> <div class="rm_input rm_select"> <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> <select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>"> <?php foreach ($value['options'] as $option) { ?> <option <?php if (get_settings( $value['id'] ) == $option) { echo 'selected="selected"'; } ?>><?php echo $option; ?></option><?php } ?> </select> <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> </div> <?php break; case "checkbox": ?> <div class="rm_input rm_checkbox"> <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> <?php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?> <input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> /> <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> </div> <?php break; case "section": $i++; ?> <div class="rm_section"> <div class="rm_title"><h3><img src="<?php bloginfo('template_directory')?>/functions/images/trans.png" class="inactive" alt="""><?php echo $value['name']; ?></h3><span class="submit"><input name="save<?php echo $i; ?>" type="submit" value="Save changes" /> </span><div class="clearfix"></div></div> <div class="rm_options" style=" display:none;"> <?php break; } } ?> <input type="hidden" name="action" value="save" /> </form> <form method="post"> <p class="submit"> <input name="reset" type="submit" value="Reset Theme Options" /> <input type="hidden" name="action" value="reset" /> </p> </form> <div class="fns">Panel & Theme creation by <a href="http://atanasfilipov.com/" target="_blank">Atanasfilipov.com</a></div> </div> <?php } ?> <?php add_action('admin_init', 'mytheme_add_init'); add_action('admin_menu', 'mytheme_add_admin'); ?>
Създайте папка functions, и в нея създайте следните файлове: functions_bk.css, functions_wt.css, rm_script.js:
functions_bk.css
.rm_wrap, .rm_wrap h2, .rm_wrap p, .rm_options { background: #000000; color: #ffffff; padding: 20px; } .rm_wrap h2 { font-size: 35px; } .rm_wrap { width: 80%; margin-left: auto; margin-right: auto; } .fns { font-size: 10px; text-align: center; } .fns a { color: #678fbf; text-decoration: none; } .fns a:hover { text-decoration: underline; } .zsd{ text-align:center; } .zsd2{ margin-bottom:10px; text-transform: lowercase; } .rm_opts{ text-align:left; } .rm_section{ border:1px solid #333; border-bottom:0; background:#f9f9f9; } .rm_opts label{ font-size:16px; width:200px; display:block; float:left; } .rm_input { padding:30px 10px; border-bottom:1px solid #333; } .rm_opts small{ display:block; float:right; width:40%; color:#ffffff; font-size:14px; text-align:left; } .rm_opts input[type="text"], .rm_opts select{ width:280px; font-size:12px; padding:4px; color:#333; line-height:1em; background:#f3f3f3; } .rm_input input:focus, .rm_input textarea:focus{ background:#fff; } .rm_input textarea{ width:280px; height:175px; font-size:12px; padding:4px; color:#333; line-height:1.5em; background:#f3f3f3; } .rm_title h3 { cursor:pointer; font-size:20px; text-transform: uppercase; margin:0; font-weight:bold; color:#ffffff; float:left; width:80%; padding:14px 4px; } .rm_title{ cursor:pointer; background:url('images/backtheme.png'); padding:0; } .rm_title h3 img.inactive{ margin:-8px 10px 0 2px; width:32px; height:32px; background:url('images/pointer.png') no-repeat 0 0; float:left; -moz-border-radius:6px; } .rm_title h3 img.active{ margin:-8px 10px 0 2px; width:32px; height:32px; background:url('images/pointer.png') no-repeat 0 -32px; float:left; } .rm_title{ border:1px solid #222222; } .rm_title:hover{ border:1px solid #678fc0; } .rm_title span.submit{ display: block; float: right; margin: 0; padding: 0; width: 15%; padding: 14px 0; text-align: center; } .submit input { background: #222222; color: #f25757; border: #2E2D2D 1px solid; font-size: 14px; padding-left: 10px; padding-right: 10px; -moz-border-radius: 5px 5px 5px 5px; border-radius: 5px 5px 5px 5px; } .submit input:hover { cursor: pointer; cursor: hand; background: #000000; } #message strong{ color:#e51865; } .rm_wrap #message p { margin: 0 !important; } .clearfix{ clear:both; } .rm_table th, .rm_table td{ border:1px solid #bbb; padding:10px; text-align:center; } .themelogo{ text-align:left; position:absolute; top:0; } .themelogo img{ height:150px; } .rm_table th, .rm_table td.feature{ border-color:#888; } .notice, div.error, div.updated { background: none; } .notice-success, div.updated { border-left-color: #fb2b79; background: #fb2b79; } .notice-success, div.updated p { padding-left:20px; }
functions_wt.css
.rm_wrap, .rm_wrap h2, .rm_wrap p, .rm_options { background: #ffffff; color: #000000; padding: 20px; } .rm_wrap h2 { font-size: 35px; } .rm_wrap { width: 80%; margin-left: auto; margin-right: auto; } .fns { font-size: 10px; text-align: center; } .fns a { color: #678fbf; text-decoration: none; } .fns a:hover { text-decoration: underline; } .zsd{ text-align:center; } .zsd2{ margin-bottom:10px; text-transform: lowercase; } .rm_opts{ text-align:left; } .rm_section{ border-bottom:0; background:#f9f9f9; } .rm_opts label{ font-size:16px; width:200px; display:block; float:left; } .rm_input { padding:30px 10px; border: #e9e9e9 1px solid; } .rm_opts small{ display:block; float:right; width:40%; color:#000000; font-size:14px; text-align:left; } .rm_opts input[type="text"], .rm_opts select{ width:280px; font-size:12px; padding:4px; color:#333; line-height:1em; background:#f3f3f3; } .rm_input input:focus, .rm_input textarea:focus{ background:#fff; } .rm_input textarea{ width:280px; height:175px; font-size:12px; padding:4px; color:#333; line-height:1.5em; background:#f3f3f3; } .rm_title h3 { cursor:pointer; font-size:20px; text-transform: uppercase; margin:0; font-weight:bold; color:#000000; float:left; width:80%; padding:14px 4px; } .rm_title{ cursor:pointer; background:url('images/backtheme_wt.png'); padding:0; } .rm_title h3 img.inactive{ margin:-8px 10px 0 2px; width:32px; height:32px; background:url('images/pointer.png') no-repeat 0 0; float:left; -moz-border-radius:6px; } .rm_title h3 img.active{ margin:-8px 10px 0 2px; width:32px; height:32px; background:url('images/pointer.png') no-repeat 0 -32px; float:left; } .rm_title{ border:1px solid #e9e9e9; } .rm_title:hover{ border:1px solid #678fc0; } .rm_title span.submit{ display: block; float: right; margin: 0; padding: 0; width: 15%; padding: 14px 0; text-align: center; } .submit input { background: #fff; color: #f25757; border: #e9e9e9 1px solid; font-size: 14px; padding-left: 10px; padding-right: 10px; -moz-border-radius: 5px 5px 5px 5px; border-radius: 5px 5px 5px 5px; font-weight:bold; } .submit input:hover { cursor: pointer; cursor: hand; background: #e9e9e9; } #message strong{ color:#e51865; } .rm_wrap #message p { margin: 0 !important; } .clearfix{ clear:both; } .rm_table th, .rm_table td{ border:1px solid #bbb; padding:10px; text-align:center; } .themelogo{ text-align:left; position:absolute; top:0; } .themelogo img{ height:150px; } .rm_table th, .rm_table td.feature{ border-color:#888; } .notice, div.error, div.updated { background: none; } .notice-success, div.updated { border-left-color: #fb2b79; background: #fb2b79; } .notice-success, div.updated p { padding-left:20px; }
rm_script.js
jQuery(document).ready(function(){ jQuery('.rm_options').slideUp(); jQuery('.rm_section h3').click(function(){ if(jQuery(this).parent().next('.rm_options').css('display')=='none') { jQuery(this).removeClass('inactive'); jQuery(this).addClass('active'); jQuery(this).children('img').removeClass('inactive'); jQuery(this).children('img').addClass('active'); } else { jQuery(this).removeClass('active'); jQuery(this).addClass('inactive'); jQuery(this).children('img').removeClass('active'); jQuery(this).children('img').addClass('inactive'); } jQuery(this).parent().next('.rm_options').slideToggle('slow'); }); });
И последно, свалете и картинките към скрипта и ги поставете в директорията на Вашата тема/functions/images/. Свали картинките от тук.