Go over a quick crash course into what it takes to develop a WordPress theme and then jump into some deeper waters on how to utilize Custom Post Types, create custom theme options, and custom meta boxes.
An introduction to WordPress theme development by Thad Allender from GraphPaperPress.com. Slides from WordPress December 2010 Meetup at Fathom Creative in Washington, D.C.
The Re-brand WordPress Admin is for developers who want to give their clients a more personalized and less confusing content management system with amazing look and feel.
An introduction to WordPress theme development by Thad Allender from GraphPaperPress.com. Slides from WordPress December 2010 Meetup at Fathom Creative in Washington, D.C.
The Re-brand WordPress Admin is for developers who want to give their clients a more personalized and less confusing content management system with amazing look and feel.
How to Prepare a WordPress Theme for Public ReleaseDavid Yeiser
A presentation for WordCamp Louisville on how to prepare a theme for distribution. It mainly follows the theme review process outlined at WordPress.org. It also discusses reasons to release a theme and briefly highlights ways to stand out from the crowd.
Stepping into theme development can be daunting. Sure anyone with a little PHP skill and a basic understanding of the loop can create theme templates, but there are a number of things you can learn which can take your theme development to the next level. We’ll discuss the skills that can take you from a beginner theme developer to a master.
Responsive Theme Workshop - WordCamp Columbus 2015
Take Underscore Starter theme from Automattic and add in Foundation5 css library from Zurb to build a responsive starter theme.
Learn the basics of building WordPress themes. This presentation is appropriate for people who are somewhat familiar with PHP and databases.
To Learn More, check out http://techliminal.com
Build a WordPress theme from HTML5 template @ TelerikMario Peshev
How to build a WordPress theme out of HTML5 template, integrate dynamic components such as menus, sidebars and comment areas and use widget blocks for static sliced content.
at Telerik Academy, 19 Jun 2012
How to Prepare a WordPress Theme for Public ReleaseDavid Yeiser
A presentation for WordCamp Louisville on how to prepare a theme for distribution. It mainly follows the theme review process outlined at WordPress.org. It also discusses reasons to release a theme and briefly highlights ways to stand out from the crowd.
Stepping into theme development can be daunting. Sure anyone with a little PHP skill and a basic understanding of the loop can create theme templates, but there are a number of things you can learn which can take your theme development to the next level. We’ll discuss the skills that can take you from a beginner theme developer to a master.
Responsive Theme Workshop - WordCamp Columbus 2015
Take Underscore Starter theme from Automattic and add in Foundation5 css library from Zurb to build a responsive starter theme.
Learn the basics of building WordPress themes. This presentation is appropriate for people who are somewhat familiar with PHP and databases.
To Learn More, check out http://techliminal.com
Build a WordPress theme from HTML5 template @ TelerikMario Peshev
How to build a WordPress theme out of HTML5 template, integrate dynamic components such as menus, sidebars and comment areas and use widget blocks for static sliced content.
at Telerik Academy, 19 Jun 2012
Responsify! 5 Things You Should Know About Responsive Web DesignTammy Hart
It's no secret that the world has gone mobile. Responsive web design is taking the web by storm as a preferred choice in catering to mobile users. Are you ready to integrate responsiveness into your workflow? Ready or not, here are 5 things you'll need to know!
Managing WordPress Websites - Training Course - Feb 2015John A. Walsh
This training course was delivered for Inspire Marketing to local business people in the Co Kildare area, under the direction of Kildare Co Council and the Outdoor Tourism (Ireland) scheme.
http://www.mobileapptelligence.com
Introduction - Mobile Application Development
Mobile application development is a process by which application software is developed for low-power handheld devices
personal digital assistants
enterprise digital assistants
mobile phones.
MobileAPPtelligence is an award winning web, cloud and mobile app development company.
It does next generation mobile app development for iOS, Android, Blackberry and Windows platforms.
WordPress development paradigms, idiosyncrasies and other big wordsTomAuger
For seasoned developers approaching WordPress customization or development for the first time the biggest challenge is often not learning the API and method calls: it's grasping the idiosyncrasies of the WordPress framework.
In this 45-minute presentation aimed at web coders who are interested in diving into WordPress customization and development, you will learn the key idioms that will accelerate your learning curve and help you approach the framework from a best practices perspective: template hierarchies, themes and child themes, taxonomies, filters and action hooks, execution order and other need-to-know concepts will be presented as well as tips on what the most active online developer communities are and the best places to go for quick (free) help and advice.
Stepping into theme development can be daunting. Sure anyone with a little PHP skill and a basic understanding of the loop can create theme templates, but there are a number of things you can learn which can take your theme development to the next level. We’ll discuss the skills that can take you from a beginner theme developer to a master.
A video of this talk given in Boston, MA can be seen at https://www.youtube.com/watch?v=IdMEOO0JmZA
(Updated for 2017)
In this workshop, we will show the process of taking an HTML & CSS designs and PhotoShop templates and converting them into a fully working WordPress theme. Along the way, we’ll look at the main aspects of WordPress theming, some best practices and a few tricks. WordPress 2.6 and 2.7 makes the whole process easier than ever, so get started making your WordPress site look not like a WordPress site!
WordPress is NOT just a blog anymore!
For the seasoned WordPress developer or anyone coding in PHP, CSS, and jQuery, we will look at how you can take your theme to the next level. I will explain how theme architecture works, how to extend this architecture with custom template files, and how to create custom functions. I will also walk through the some interested CSS frameworks, like 960grid, implementing intermediate to advanced jQuery features, and how to customize the back end. Finally I will briefly discuss how to take your theme mobile using WPTouch and WPMobile.
“A Full day of WordPress2.5, focused on design and development. We’ll cover the essentials of setup, installation, and management. We’ll learn how to build custom themes using CSS, PHP, and image
architecture. We’ll also jump into custom code and template files, best practices for design and management, integrating Flash, and how to build and install WP and custom plug-ins.”
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
3. What is a WordPress theme? A group of templates and a stylesheet that displays content entered into the database via the WordPress admin. At a minimum, you need: index.php style.css
6. What is the Loop? PHP that uses the prefetched query of the current page to loop through the posts and displays the data as outlined in the current page’s template.
12. A Basic Theme 404.php - Custom “not found” page archive.php - Overall template for archived content attachment.php- Overall template for attachments of any mime type comments.php - The template called with comments_template() footer.php - The template called with get_footer() functions.php - A place to create custom functions, register sidebars, and other settings header.php - The template called with get_header() index.php - The basic home template page.php - Overall template for pages search.php - Search results template searchform.php - The template called with get_search_form() sidebar.php - The template called with get_sidebar() single.php - Overall template for single posts style.css - The main stylesheet
15. What is a Post Type? Content entered into the database goes into the posts tableand is assigned a post_type.
16. Default Post Types Main Content Post - blog style content Page - static content Other Attachment - any images or other files uploaded to a post (of any type) Revision - an archive of version of a particular post Nav Menu Item - used in the menu system
17. What is a Taxonomy? Content can be organized by assigning terms to them. Terms are saved in the terms table, then they are grouped into a taxonomy in the term_taxonomy table, and finally they are related to posts in the term_relationships table.
18. Default Taxonomies Post Taxonomies Category - hierarchical Post Tag - non-hierarchical Other Link Category - for the links system Nav menu - used in the menu system
19. Custom Examples Post Type: Movie Taxonomy: Actor Term: Debbie Reynolds Term: Angeline Jolie Term: Clark Gable Term: Ewan McGregor Taxonomy: Director Term: Ron Howard Term: Steven Spielberg Post Type: Book Taxonomy: Author Term: Frank Peretti Term: James Patterson Term: Seth Godin Term: Lynn Austin Taxonomy: Publisher Term: Atlas Press Term: Hay House Term: O’Reilly Media Taxonomy: Subject Term: Arts & Photography Term: Suspense & Horror Term: Reference Post Type: Photo Taxonomy: Album Term: Summer Child Term: Fourth of July Child Term: First Day of School Term: Christmas Term: Sports Taxonomy: Year Term: 2001 Term: 2002 Term: 2003 Post Type: Project Taxonomy: Type Term: Design Child Term: Logo Child Term: Brochure Child Term: Website Term: Development Taxonomy: Tools Term: Photoshop Term: HTML5 Term: JavaScript Term: WordPress
20. Useful Plugins Like most things in WordPress, there are plugins that help create and manage Custom Post Types and Taxonomies.
21. Create Manage Custom Post Type UI Creates Both TONS of labeling options WP Post Type UI Creates Both Buggy Allows a custom icon More Types & More Taxonomies Separate plugins for each Allows you to override built in types and taxonomies Allows a custom icon Works seamlessly with the More Fields Plugin (stay tuned for more) Custom Post Type Order Drag and drop ordering Post Type Switcher Change the post type one item at a time Convert Post Types Bulk edit post types Term Management Tools Merge - combine two or more terms into one Set parent - set the parent for one or more terms (for hierarchical taxonomies) Change taxonomy - convert terms from one taxonomy to another
22. Registration Code The best method for creating Custom Post Types and taxonomies for is to register them yourself without a plugin.
25. There’s still an easy way out Don’t get too worried about memorizing all of this. Just memorize the web address where you can find two amazing generators: Themergency.com/generators
27. What are Custom Fields? The postmeta table holds extra data and options attached to each post. Custom fields can be used by theme and plugin developers to save extra pieces of information that you can use in templates and other places.
28. How Custom fields work The data is saved in the postmeta table meta_id - the ID of the item being saved post_id - the ID of the post it belongs to meta_key - the name of the data being collected meta_value - the entered value Use the data in a template or function get_post_meta() - returns the values of the specified key the_meta() - outputs a simple list of all custom fields and their values get_post_custom()- returns a multidimensional array with all custom fields of a particular post or page
31. Create Your Own UI Adding a meta box for entering in values for custom fields can make it so much easier for the user to add things like dates or select from a premade list of values.
32. add_meta_box() add_meta_box( $id, $title, $callback, $page, $context, $priority, $callback_args ); $id - HTML 'id' attribute of the edit screen section $ title - title of the edit screen section, visible to user $callback - function that prints out the HTML for the edit screen section. $page - the type of Write screen on which to show the edit screen section $context - the part of the page where the edit screen section should be shown $priority - the priority within the context where the boxes should show $callback_args- arguments to pass into your callback function add_action('admin_menu', 'project_add_box'); function project_add_box() { global$meta_fields; add_meta_box('project_info', 'Project Info', 'project_show_box', 'project', 'normal', 'high'); }
33. Array of Fields $meta_fields =array( array( 'name' => 'Project URL', 'desc' =>'URL to the live site.', 'id' => 'url', 'type' =>'text', 'value' => 'http://' ), array( 'name' => 'Project Date', 'desc' =>'When the project was released.', 'id' =>'date', 'type‘ => 'date' ), array( 'name' => 'Tools', 'desc' =>'What tools did you use for this project?', 'id' =>'tools', 'type' =>'checkbox_group', 'options' =>array( 'jQuery', 'HTML5', 'CSS 3', 'Photoshop', 'Illustrator', 'WordPress') ) );
34. Callback function project_show_box() { global$meta_fields, $post; // Use nonce for verification echo'<input type="hidden" name="project_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />'; // start a table echo'<table class="form-table">'; // start a loop through the fields foreach ($meta_fields as $field) { // get current post meta data $meta = get_post_meta($post->ID, $field['id'], true); // start a table row echo'<tr> <th style="width:20%"><label for="', $field['id'], '">', $field['name'], '</label></th>', '<td>';
35. Switch Case switch($field['type']) { // text case'text': echo'<input type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['value'], '" size="30" style="width:97%" /> <br /><span class="desc">', $field['desc'], '</span>'; break; … continue with other field types … } // end switch echo'<td>', '</tr>'; } // end foreach echo'</table>'; }
36. Save Post add_action('save_post', 'project_save_data'); // Save data from meta box function project_save_data($post_id) { global$meta_fields; // verify nonce if(!wp_verify_nonce($_POST['project_meta_box_nonce'], basename(__FILE__))) return$post_id; // check autosave if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return$post_id; // check permissions if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) return $post_id; } elseif (!current_user_can('edit_post', $post_id)) { return$post_id; } foreach($meta_fieldsas$field) { // get the current value $old = get_post_meta($post_id, $field['id'], true); // get the new value $new = $_POST[$field['id']]; // update if there’s a new value if($new && $new != $old) { update_post_meta($post_id, $field['id'], $new); // delete if the new value is empty } elseif ('' == $new && $old) { delete_post_meta($post_id, $field['id'], $old); } } }
38. Output the Data Using the functions we discussed before, we can now use this data in our template.
39. The Bad and the Ugly The Bad: $url = get_post_meta($post->ID, ‘url', true); if ($my_key != '') echo'<a href="' . $my_key . '“>Visit Site →</p>'; The Ugly: the_meta();
42. Why is this useful? You can create an easy way to input additional data that can be used in a variety of ways in your theme.
43. Example Usages Social Networks The user can insert their twitter, facebook, etc. handles once The template outputs these in the necessary places of the theme On/Off switches Show secondary navigation? Are you available for live chat? Use Breadcrumbs? Custom layout options Two column featured posts 3 Category Posts Featured slider with recent posts listed below
44. Create Your Own This is almost as simple as adding a custom meta box, except the data isn’t limited to just a post, it can be used site wide.
45. add_theme_page() add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function); $page_title - the text to be displayed in the title tags of the page when the menu is selected $menu_title - the text to be used for the menu $capability - the capability required for this menu to be displayed to the user $menu_slug - the slug name to refer to this menu by (should be unique for this menu) $function - the function to be called to output the content for this page add_action( 'admin_menu', 'theme_options_add_page'); functiontheme_options_add_page() { add_theme_page( 'Theme Options','Theme Options','edit_others_posts','theme_options', 'theme_options_do_page'); }
46. register_setting() register_setting( $option_group, $option_name, $sanitize_callback ); $option_group - settings group name $option_name - the name of an option to sanitize and save $sanitize_callback - a callback function that sanitizes the option's value add_action( 'admin_init', 'theme_options_init' ); function theme_options_init(){ register_setting( 'our_options', 'our_theme_options', 'theme_options_validate'); }
48. Callback function theme_options_do_page() { global$fields; if(!isset( $_REQUEST['settings-updated'])) $_REQUEST['settings-updated'] = false; // the page heading echo'<div class="wrap">'; screen_icon(); echo'<h2>Theme Options</h2>'; // notifies on load if options were saved if(false!== $_REQUEST['settings-updated']) echo'<div class="updated fade"><p><strong>Options saved</strong></p></div>'; // start form echo'<form method="post" action="options.php">'; settings_fields( 'our_options' ); // get the settings $options = get_option('our_theme_options'); // start a table echo'<table id="options" class="form-table">'; // start a loop through the fields foreach($fields as$field) { // section rows if($field['type'] == 'section') { echo'<tr><td colspan="2"><h3>', $field['label'], '</h3></td></tr>'; } // field rows else{ // start a table row echo'<tr valign="top"><th scope="row">', $field['label'], '</th>', '<td>';
49. Switch Case switch ($field['type']) { // text case'text': echo'<input type="text" name="our_the_options[', $field['id'], ']" id="', $field['id'], '" value="', $meta ? $meta : $field['value'], '" size="30" style="width:97%" /> <br /><span class="desc">', $field['desc'], '</span>'; break; … continue with other field types … } // end switch echo'<td>', '</tr>'; } // end foreach echo'</table>'; // close out the container echo'<p class="submit"><input type="submit" class="button-primary" value="Save Options" /></p></form></div>'; }
50. Save Data function theme_options_validate( $input ) { global$fields; foreach ($fieldsas$field) { switch ($field['type']) { //text case'text': // Say our text option must be safe text with no HTML tags $input[$field['id']] = wp_filter_nohtml_kses( $input[$field['id']] ); break; … continue with other field types … } // end switch } // end foreach return$input; }
52. Output the Data Create a function to call the data from the setting and use it in your templates.
53. Custom Functions // get the value we saved function get_our_options($field) { $options = get_option('our_theme_options'); return$options[$field]; } // print the value function our_options($field) { print get_our_options($field); }