How to Add Custom Fields Automatically on Post Publish in WordPress

How to Add Custom Fields Automatically on Post Publish in WordPress

When creating our  Gallery Site, we needed to generate custom branded short urls automatically for each site submitted to the gallery, and then store them as a custom field as soon as the post was published. Now while we will leave the auto-generating Bit.ly shortlinks for each post for our next topic, we will cover how to add custom fields automatically on post publish in WordPress. This can be very useful for developers who are looking to push WordPress to the next level. First thing you need to do is open your theme’s functions.php file and paste the following code: add_action('publish_page', 'add_custom_field_automatically'); add_action('publish_post', 'add_custom_field_automatically'); function add_custom_field_automatically($post_ID) { global $wpdb; if(!wp_is_post_revision($post_ID)) { add_post_meta($post_ID, 'field-name', 'custom value', true); } } Then simply replace the field-name and custom value with your Custom Field Name, and the Value. This is a relatively simple trick, but it can be very effective when trying to use WordPress for other than blog purposes. .. More this article →
0
50+ WordPress Themes for Video Bloggers

50+ WordPress Themes for Video Bloggers

With the advent of video sharing websites such as YouTube, Vimeo and Metacafe, video blogging has gained momentum like we’ve never seen before. Now it is easier than ever to upload, view and share videos — especially due to the plethora of awesomeness that comes bundled with HTML5. WordPress, of course, can be used for video blogging too. WP themes for video blogging pack in many custom features –special widgets to share videos, support for multiple formats and embeds, to name just a few! In this article, we shall take a look at some of the specialized themes available for video bloggers, both and free and premium. So without further ado, here is the list! .. More this article →
0
25 Free and Premium Barebone WordPress Themes for Easy Customizing

25 Free and Premium Barebone WordPress Themes for Easy Customizing

If you design and develop themes for WordPress, chances are you probably already know the importance of theme frameworks or skeleton themes. To put it simply, these are minimal versions of themes, stripped of all additional functionality, giving you just the bare minimum level of code that you can work with and base your projects on. Needless to say, such frameworks and skeleton themes can save a lot of time and effort by giving developers a ready-made starting ground (consider this: you’re building a house, but you need not lay the foundation, as it’s already there. You simple shoot off with the main building). .. More this article →
0
50 Unique WordPress Themes For Photographers

50 Unique WordPress Themes For Photographers

  Are you a professional freelance, studio or part time photographer looking for a way to strengthen your online presence? Then WordPress themes for photographers are an easy, cheap and perfect solution to showcase your work to clients or potential customers. Competition online is fierce, making it a challenge to be seen as a photographer and this is where a professional photography theme will make a difference to your overall success. .. More this article →
0
Top 10 Blog Monetization Strategies, Ranked In Order

Top 10 Blog Monetization Strategies, Ranked In Order

You want to make money with your blogging efforts. But, how? Which method is the best one? In this article, I outline what I believe are the top 10 ways to monetize a blog site. And I’m also going to do my best to rank them in order of workability. 1. Membership Programs The “freemium” model is a huge and growing trend in online income right now. You provide a lot of quality content for free to your audience, and you provide a premium-level program to those willing to pay for it. You charge a monthly membership and that provides continuity and a steady income stream.   2. Information Products (Of Your Own) The selling of knowledge is HUGE. If you build up your position in your market, you can then sell quality information to that market. This can take the form of e-books, audio, videos, or all of the above. You can package them up or just sell them digitally. If you author the product yourself (recommended), then you keep 100% of the profit. 3. Services/Consulting/Coaching Another great way to make money with a blog is an indirect one. Use the blog to build reputation. Build a brand and build an audience. Then, you make your money by directing that attention into offline services, consulting and/or coaching. This can be quite lucrative. The drawback is that you are, again, trading time for money. So, it is only scalable up to a point.   4. Speaking Gigs If you become well known as an expert in your niche, you can turn that into speaking gigs which you get paid for. Chris Brogan does this with his blog. Whether he makes money directly with his blog or not (I honestly don’t know), I know he gets paid to speak at various events. 5. Product Sales If you have a physical product line to offer, you can use the blog as a face for your online store. Sell whatever you want. For example, if you are an artist, you can use an online store to sell art pieces and a blog to build up audience and a following. 6. Affiliate Programs Affiliate marketing is a great way to build up your income. You offer the products of others to your audience and get paid when they buy it. In fact, any time you recommend a relevant product or service to your audience, check to see if they have an affiliate program. If so, sign up and use your affiliate link. After all, if you’d recommend it to your readers anyway, you might as well make a little cut if they happen to buy. 7. Direct Ad Sales Banner ads and in-text ads are another popular way to make money. In fact, it is usually the first method you think of. However, if you’re going to go this route, selling the ads directly will result in more cash in your pocket. As for pricing, I would recommend you shoot for twice your eCPM from Google Adsense. Why twice? Because that’s what Google is charging (they take half). 8. Banner Advertising OK, if you don’t want to sell your own ads, you can obviously still run network advertising from a variety of different sources. Personally, I am using Adsense, Kontera, IDG and a little bit of Tribal Fusion. You can also direct sell ads and use network ads as filler for unused inventory. It is done all the time. 9. Paid Posts Yes, you can get paid to review products and sites on your blog. Sites like PayPerPost and ReviewMe are popular options. I’ve seen some blogs sell this option directly. When doing this, it is important to disclose the fact that it is a paid review. It is also important that you maintain your integrity and never give a positive review unless you’re really feeling it. 10. Job Boards Some sites (like ProBlogger) have job boards. It does work for some sites, however it probably won’t work for a majority of blogs out there. 11. Build It & Sell It OK, I’ve thrown in an eleventh one as a bonus. You can build up a blog, build an audience, then turn around and sell the thing. In fact, some people actually buy blogs which are dead or are vastly underutliized by their owners. They’ll then put their marketing skills to work, build the SEO backlinks, build the readership. Then, they turn around and sell it at a profit. It can work. I’ve never done it myself personally, but I’ve read of others who have. .. More this article →
22
Working with HTML5 localStorage()

Working with HTML5 localStorage()

HTML5 is fast approaching and getting wide spread usage. Most are familiar with the new tags like header, section and footer and everybody is aware of the new video tags thanks to Apple vs Adobe. However, there is a lot more to HTML5 those just those two aspects. I want to focus on localStorage() this time. localStorage is a client-side key-value database, meaning it is stored in the users browser. This means the users data is saved on their machine inside their browser. This also means that their data is only available to them when on that machine and in that browser. Remember that localStorage is per browser not per computer. Browser support is always a huge topic when discussing new html5 or even css3 aspects. This is due to such a wide spread of support from the big browsers right now. In the case of localStorage, it is supported by Safari 4+, Mobile Safari (iPhone/iPad), Firefox 3.5+, Internet Explorer 8+ and Chrome 4+. This only leaves out Opera who currently does not support this storage. Depending on your target audience browser support may be an issue for you. HTML5 localStorage() is a four part series of articles where I will show you how to create a simple html5 time tracking web app using localStorage as the sole database. The series will walk you through the basics of localStorage to advanced techniques to leverage the power of this new html5 database. We won’t stop at just the functionality of the app but in part four we will cover styling the app with html5 and css3 to create an iPhone(ish) web app. Here is a quick example of what the javascript looks like to access localStorage(); if (typeof(localStorage) == ‘undefined’ ) { alert(‘Your browser does not support HTML5 localStorage. Try upgrading.’); } else { try { localStorage.setItem(“name”, “Hello World!”); //saves to the database, “key”, “value” } catch (e) { if (e == QUOTA_EXCEEDED_ERR) { alert(‘Quota exceeded!’); //data wasn’t successfully saved due to quota exceed so throw an error } } document.write(localStorage.getItem(“name”)); //Hello World! localStorage.removeItem(“name”); //deletes the matching item from the database } In the code snippet above we are doing several things including checking if your browser supports localStorage, saving a new item to the database, retrieving that item and displaying it and then removing the item. The above is your typical Hello World example but shows you just how easy it is to use. The time tracking app we will create will be storing a unique id as the key and joining multiple values into one string, as localStorage only supports storing of strings. I will be making the source code available at the end of each article along with the full source and the working app at the end of the series, which you can follow here. .. More this article →
2
HTML5 Boilerplate

HTML5 Boilerplate

Whether you like the standard or not, HTML5 seems to be gaining a great deal of popularity and support. The upcoming Window 8 program will provide extensive support for HTML5. But it can be challenging and sometimes difficult to produce sites which are compatible with HTML5. To help with this situation, there are tools to assist developers. One of the best is called HTML5 boilerplate. Let’s talk more about this and how it can help. HTML5 boilerplate contains a number of helpful templates which incorporates HTML, CSS, and JS to enable designers to produce fast and robust websites. It helps you to interface with HTML5 video and different fonts. This tool can really help designers and developers to get their websites fully operational and compatible with this new standard. Some of the features available with HTML5 boilerplate include cross browser compatibility (including IE6, IE7, and IE8). It also offers Modernizr support as well as Google analytics support. The tool can also help to optimize mobile browsers. And CDN hosted jQuery with a local fallback script is available as well. This tool is available in three options. They include Boilerplate Documented, Boilerplate Stripped, and Boilerplate Custom. The Boilerplate documented option includes a .zip file which contains the skeleton code which is needed to get started building an HTML5 site with documentation included, built in jQuery CDN support, CSS, caching and other features. The Boilerplate stripped version has the same components but removes comments. And the Boilerplate Custom enables you to build a custom site skeleton with full control of what gets added or removed. If you seek further details and support related to HTML5 boilerplate, there is a great deal available throughout the Web. Simply type in an appropriate search terms related to this topic and you’ll be presented with many sites which allow you to download the tools as well as extensive documentation and assistance in using these tools effectively. If you visit some relevant forums, you will also find a great deal of information and support there as well. There are many ways to improve your knowledge of and effectiveness in HTML5 utilization. So whether you are a Web developer or just someone who is looking to get involved in HTML5 implementation, the code generated by the HTML5 boilerplate can really help to bring your projects along quickly and effectively. You can find many tips and tricks to help with this implementation and help ensure that your pages are completely HTML5 compliant. These tools can go a long way towards enhancing the implementation and adoption of this flexible and powerful web standard. View this HTML5 tool here… .. More this article →
9
How to Create an HTML5 Microdata Powered Resume

How to Create an HTML5 Microdata Powered Resume

  In May 2009, Google introduced Rich Snippets, a small block of information displayed in Google’s search engine results to make it easier for users to decide which pages are relevant to their search. In June 2011, Google announced the creation of Schema.org, a new initiative from Google, Bing and Yahoo! that aims to improve the web by creating structured data markup schema. This tutorial demonstrates how to create an online resume that incorporates Schema.org Microdata. The tutorial also includes instructions on how to use Authorship Markup! Bonus Items Included! The tutorial demo is a one page site template that you are free to use for your online resume. As a bonus, several color versions are included in the source files zip; dark green, light green, dark blue and light blue. Please note that this is not a web design or CSS tutorial, so only the HTML5 and Schema.org Microdata markup will be covered. Now, let’s begin! Step 1: The CSS Create a CSS style sheet called “style.css” and include the following code. Don’t worry; it’s fairly simple, and understanding it isn’t necessary for this tutorial. /* Default Styles --------------------------------------------------- */ body { margin: 0px; padding: 0px; background: url("../images/bg_dark_green.png"); background-color: inherit; font-size: 16px; font-family: "Trebuchet MS", Helvetica, sans-serif; color: #000; } a:link { text-decoration: underline; color: #000; font-weight: bold; } a:visited { text-decoration: underline; color: #000; font-weight: bold; } a:hover { text-decoration: underline; color: #669933; font-weight: bold; } a:active { text-decoration: underline; color: #000; font-weight: bold; } #wrapper { width: 965px; margin: 0 auto; } #content { background-color: #eee; width: 960px; text-align: left; overflow: auto; position: relative; margin: 25px 0px 25px 0px; border: #fff solid 2px; } .clear { float: none; clear: both; margin: 20px 0px 20px 0px; } /* Header --------------------------------------------------- */ #contact-details .header_1 { float: left; width: 350px; text-align: center; margin: 40px 0px 0px 20px; } #contact-details .header_1 img { border: #fff solid 4px; background: url("../images/bg_img_dark_green.png"); padding: 16px; margin: 10px 0px 0px 0px; } #contact-details .header_2 { float: left; width: 570px; margin: 40px 0px 0px 10px; } #contact-details .header_2 a { font-weight: normal; } #contact-details h1 { margin: 0px 0px 0px 20px; font-size: 52px; font-weight: bold; } #contact-details h3 { margin: 0px 0px 32px 20px; font-size: 30px; font-weight: bold; font-style: italic; } #contact-details ul.info_1 { list-style: none; margin: 0px 0px 0px -12px; font-size: 18px; } #contact-details ul.info_2 { list-style: none; margin: 0px 0px 15px -12px; font-size: 18px; } #contact-details li.address { background: url("../images/home.png") no-repeat; background-position: 0px 0px; padding: 0px 0px 12px 40px; } #contact-details li.phone { background: url("../images/phone.png") no-repeat; background-position: 0px 0px; padding: 0px 0px 12px 40px; } #contact-details li.email { background: url("../images/mail.png") no-repeat; background-position: 0px 0px; padding: 0px 0px 12px 40px; } #contact-details li.site_url { background: url("../images/computer.png") no-repeat; background-position: 0px 2px; padding: 0px 0px 12px 40px; } #contact-details li.twitter { background: url("../images/twitter_sm.png") no-repeat; background-position: 0px 0px; padding: 0px 0px 12px 40px; } /* Main Content --------------------------------------------------- */ h2.top { margin: 0px; font-size: 22px; font-weight: bold; } h2 { margin: 40px 0px 0px 0px; font-size: 22px; font-weight: bold; } dl { margin: 0px 50px 0px 0px; } dt { float: left; width: 200px; font-size: 20px; font-weight: bold; font-style: italic; text-align: right; } dd { width: 620px; float: right; margin-right: 20px; } dl#contact { margin: 0px; } dt#contact { margin: 0px; } dd#contact { margin: 0px; } p.bus1 { margin: 0px; font-weight: bold; color: #669933; } p.edu-info { margin: 10px 0px 0px 0px; font-weight: bold; color: #669933; } p.edu-info a { color: #000; } p.edu-info a:hover { color: #669933; } p.time { margin: 0px; } p.summary { margin: 10px 0px 0px 0px; } #skills ul.list1 { float: left; list-style: none; margin: 0px 0px 0px -40px; width: 220px; } #skills ul.list2 { float: left; list-style: none; margin: 0px 0px 0px 0px; width: 220px; } #skills li { background: url("../images/bullet_green.png") no-repeat; background-position: 0px 2px; padding: 0px 0px 0px 25px; } abbr { border-width: 0px; } /* Footer --------------------------------------------------- */ #footer { margin: 60px 40px 0px 40px; } #footer img { border: 0px; } #footer .footer_content { width: 700px; overflow: auto; margin: auto; border: #fff solid 2px; background-color: #dcdcdc; } #footer ul.icons_1 { float: left; width: 525px; margin: 15px 10px 10px 15px; padding: 0px; } #footer ul.icons_2 { float: right; width: 100px; margin: 10px 20px 10px 10px; padding: 0px; } #footer .icons_1 li, #footer .icons_2 li { margin: 0px 0px 0px 7px; padding: 0px; list-style-type: none; display: inline; } #footer a { color: #000; } #footer a:hover { color: #669933; } #footer .credits { float: none; clear: both; margin: 10px 0px 20px 0px; font-size: 12px; text-align: center; } #footer .credits a { font-weight: normal; } Step 2: The Markup (Without Schema.org Microdata Included) Next, we need an .html. This is a basic layout that we’re all likely familiar with. <!DOCTYPE html> <html> <head> <meta charset=UTF-8"> <meta charset="utf-8"> <title>Online Resume of Your Name</title> <!-- Meta --> <meta name="description" content="A few lines about yourself"> <meta name="keywords" content="web,developer,designer,resume" /> <meta name="author" content="Your Name"> <!-- CSS Stylesheet --> <link rel="stylesheet" type="text/css" href="css/style.css" /> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> </head> <body> <!-- Begin Wrapper --> <div id="wrapper"> <!-- Begin Content Area --> <div id="content"> <!-- Begin Header --> <header> <!-- Begin Contact Section --> <section id="contact-details"> <!-- Begin Profile Image Section --> <div class="header_1"> <img src="images/profile.jpg" width="250" height="250" alt="Your Name" /> </div> <!-- End Profile Image Section --> <!-- Begin Profile Information Section --> <div class="header_2"> <h1><span>Your Name</span></h1> <h3>Web Developer / Designer</h3> <ul class="info_1"> <li class="address">555 Street Address, Toledo, Ohio, 43606 U.S.A.</li> </ul> <ul class="info_2"> <li class="phone">(000) 000-0000</li> <li class="email"><a href="mailto:your-email@gmail.com">your-email@gmail.com</a></li> <li class="site_url"><a href="http://www.webcodepro.net/about.php" title="www.your-website.com">www.your-website.com</a></li> <li class="twitter"><a href="http://twitter.com/twitter-screen-name" title="Follow Me on Twitter">@twitter-screen-name</a></li> </ul> </div> <!-- End Profile Information Section --> </section> <!-- End Contact Section --> </header> <!-- End Header --> <div class="clear"> </div> <!-- Begin Profile Section --> <dl> <dt>Profile:</dt> <dd> <section class="summary"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </section> </dd> </dl> <!-- End Profile Section --> <div class="clear"> </div> <!-- Begin Skills Section --> <dl> <dt>Skills:</dt> <dd> <section id="skills"> <ul class="list1"> <li>XHTML</li> <li>HTML5</li> <li>PHP</li> <li>JavaScript</li> <li>Magento</li> <li>WordPress</li> </ul> <ul class="list2"> <li>HTML</li> <li>CSS</li> <li>MySQL</li> <li>jQuery</li> <li>CMS Made Simple</li> <li>Photoshop</li> </ul> </section> </dd> </dl> <!-- End Skills Section --> <div class="clear"> </div> <!-- Begin Experience Section --> <dl> <dt>Experience:</dt> <dd> <section id="experience"> <!-- Position #1 --> <h2 class="top">Web Developer / Designer</h2> <p class="bus1">Company Name 1</p> <p class="time">February 2009 - Present</p> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. </p> <!-- Position #2 --> <h2>Web Developer / Programmer</h2> <p class="bus1">Company Name 2</p> <p class="time">November 2007 - February 2009</p> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. </p> <!-- Position #3 --> <h2>Web Developer / Programmer</h2> <p class="bus1">Company Name 3</p> <p class="time">March 2006 - November 2007</p> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. </p> </section> </dd> </dl> <!-- End Experience Section --> <div class="clear"> </div> <!-- Begin Publications Section --> <dl> <dt>Publications:</dt> <dd> <section id="publications"> <a href="http://net.tutsplus.com/tutorials/php/how-to-create-an-advanced-twitter-widget/" target="_blank" title="How to Create an Advanced Twitter Widget">"How to Create an Advanced Twitter Widget"</a>, <a href="http://net.tutsplus.com/" target="_blank" title="Nettuts+">Nettuts+</a>, 8/25/11 </section> </dd> </dl> <!-- End Publications Section --> <div class="clear"> </div> <!-- Begin Education Section --> <dl> <dt>Education:</dt> <dd> <section id="education"> <p class="bus1">University of Toledo</p> 2801 Bancroft Street <br /> Toledo, Ohio, 43606 U.S.A. <p class="summary">Web Design</p> <p class="time">2003 - 2005</p> <p class="edu-info"> <a href="http://www.utoledo.edu/" target="_blank" title="University of Toledo">www.utoledo.edu</a> </p> </section> </dd> </dl> <!-- End Education Section --> <div class="clear"> </div> <!-- Begin Footer --> <footer id="footer"> <!-- Begin Footer Content --> <div class="footer_content"> <!-- Begin Schema Person --> <ul class="icons_1"> <li><a href="https://profiles.google.com/jwagner719" title="Google Profile"><img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32" alt="Google Profile"></a></li> <li><a href="http://dribbble.com/" title="Dribbble"><img src="images/dribbble.png" width="32" height="32" alt="Dribbble" /></a></li> <li><a href="http://www.linkedin.com/" title="LinkedIn"><img src="images/linkedin.png" width="32" height="32" alt="LinkedIn" /></a></li> <li><a href="http://www.facebook.com/" title="Facebook"><img src="images/facebook.png" width="32" height="32" alt="Facebook" /></a></li> <li><a href="http://www.flickr.com/" title="Flickr"><img src="images/flickr.png" width="32" height="32" alt="Flickr" /></a></li> <li><a href="http://twitter.com/" title="Follow Me on Twitter!"><img src="images/twitter.png" width="32" height="32" alt="Follow Me on Twitter!" /></a></li> </ul> <ul class="icons_2"> <li><a href="resume.pdf" title="Download Resume PDF"><img src="images/download.png" width="48" height="48" alt="Download Resume PDF" /></a></li> </ul> <!-- End Schema Person --> </div> <!-- End Footer Content --> <div class="credits"> Social Icons by <a href="http://paulrobertlloyd.com/2009/06/social_media_icons" target="_blank" title="Paul Robert Lloyd">Paul Robert Lloyd</a>, Profile &amp; Download Icons by <a href="http://dryicons.com/" target="_blank" title="DryIcons">DryIcons</a>, Phone Icon by <a href="http://www.comfi.com/telecom-icons/" target="_blank" title="ComFi Telecom">ComFi Telecom</a>, Profile Image User Symbol by <a href="http://thenounproject.com/" target="_blank" title="The Noun Project">The Noun Project</a>. <br /> All used under a Creative Commons Attribution-ShareAlike license: <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank" title="Creative Commons Attribution-ShareAlike license">http://creativecommons.org/licenses/by-sa/3.0/</a> </div> </footer> <!-- End Footer --> </div> <!-- End Content --> </div> <!-- End Wrapper --> </body> </html> A Few Notes About the Markup HTML5 Shiv Because Schema.org Microdata is based on the HTML5 microdata specification, HTML5 markup is being used to create the one page resume site template. Unfortunately, older web browsers like IE7 and IE8 do not recognize certain HTML5 elements. Pages written using HTML5 will not render correctly in these older browsers. Here is a screenshot of the online resume demo when viewed in (IE8 Click on image to see full image): To solve the problem with these older IE browser versions, the below code has been added between tags (just below the CSS Stylesheet): <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> This code is an HTML5 JavaScript shim for IE to recognise and style the HTML5 elements. Definition List Definition lists, <dd></dd> were used in the markup instead of unordered lists. THis is due to the fact that it makes more sense, when considering how each item has a title and a description. Section vs Article There seems to be some confusion regarding HTML5 section and article elements. The section element was used in the markup because none of the sections of the resume are considered to be standalone content. The HTML5 article element is used for standalone content that would most likely be syndicated like a blog post or news article. This article does a really good job explaining the difference between HTML5 article and section elements. Step 3: Add Schema.org Microdata – Person and PostalAddress The first types of schemas that we are going to add to the markup is Person and PostalAddress. Itemscope Element and Itemtype Attribute An itemscope element is added to <div></div>tags that are placed around the content that contains the information related to the Schema, like this: <div itemscope itemtype="http://schema.org/Person"> Content that contains information about a Person </div> The itemscope element and itemtype attribute for the Person Schema will be placed in both the Contact and Social Media Links sections of the resume web page, like so: <!-- Begin Contact Section --> <section id="contact-details"> <div itemscope itemtype="http://schema.org/Person"> Rest of Code Block Here </div> </section> <!-- End Contact Section --> <!-- Begin Social Media and Download Links --> <div itemscope itemtype="http://schema.org/Person"> Rest of Code Block Here </div> <!-- End Social Media and Download Links -->   pe element and itemtype attribute for the PostalAddress Schema is nested within the Person Schema and is placed around the unordered list <ul></ul>containing the address information like this: <!-- Begin PostalAddress Schema --> <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <ul class="info_1"> <li class="address"><span itemprop="streetAddress">555 Street Address</span>, <span itemprop="addressLocality"<Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode"<43606</span> <span itemprop="addressCountry">U.S.A.</span></li> </ul> </div> <!-- End PostalAddress Schema --> Itemprop Attributes Itemprop attributes need to be added wherever appropriate using span tags so that additional information is provided to search engines about our web page. Below are the attributes we will be using from these schemas: Person Schema itemprop="image" itemprop="name" itemprop="jobTitle" itemprop="telephone" itemprop="email" itemprop="url" PostalAddress Schema itemprop="streetAddress" itemprop="addressLocality" itemprop="addressRegion" itemprop="postalCode" itemprop="addressCountry" Final Markup for the Contact and Social Media Links Sections <!-- Begin Contact Section --> <section id=\"contact-details\"> <div itemscope itemtype=\"http://schema.org/Person\"> <!-- Begin Profile Image Section --> <div class=\"header_1\"> <img src=\"images/profile.jpg\" itemprop=\"image\" width=\"250\" height=\"250\" alt=\"Your Name\" /> </div> <!-- End Profile Image Section --> <!-- Begin Profile Information Section --> <div class=\"header_2\"> <h1><span itemprop=\"name\">Your Name</span></h1> <h3><span itemprop=\"jobTitle\">Web Developer / Designer</span></h3> <!-- Begin PostalAddress Schema --> <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <ul class="info_1"> <li class="address"><span itemprop="streetAddress">555 Street Address</span>, <span itemprop="addressLocality"<Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode"<43606</span> <span itemprop="addressCountry">U.S.A.</span></li> </ul> </div> <!-- End PostalAddress Schema --> <ul class=\"info_2\"> <li class=\"phone\"><span itemprop=\"telephone\">(000) 000-0000</span></li> <li class=\"email\"><a href=\"mailto:your-email@gmail.com\" itemprop=\"email\">your-email@gmail.com</a></li> <li class=\"site_url\"><a rel=\"me\" itemprop=\"url\" href=\"http://www.webcodepro.net/about.php\" title=\"www.your-website.com\">www.your-website.com</a></li> <li class=\"twitter\"><a rel=\"me\" itemprop=\"url\" href=\"http://twitter.com/twitter-screen-name\" title=\"Follow Me on Twitter\">@twitter-screen-name</a></li> </ul> </div> <!-- End Profile Information Section --> </div> </section> <!-- End Contact Section --> <!-- Begin Social Media and Download Links --> <div itemscope itemtype="http://schema.org/Person"> <ul class="icons_1"> <li><a rel="author" itemprop="url" href="https://profiles.google.com/jwagner719" title="Google Profile"><img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32" alt="Google Profile"></a></li> <li><a rel="me" itemprop="url" href="http://dribbble.com/" title="Dribbble"><img src="images/dribbble.png" width="32" height="32" alt="Dribbble" /></a></li> <li><a rel="me" itemprop="url" href="http://www.linkedin.com/" title="LinkedIn"><img src="images/linkedin.png" width="32" height="32" alt="LinkedIn" /></a></li> <li><a rel="me" itemprop="url" href="http://www.facebook.com/" title="Facebook"><img src="images/facebook.png" width="32" height="32" alt="Facebook" /></a></li> <li><a rel="me" itemprop="url" href="http://www.flickr.com/" title="Flickr"><img src="images/flickr.png" width="32" height="32" alt="Flickr" /></a></li> <li><a rel="me" itemprop="url" href="http://twitter.com/" title="Follow Me on Twitter!"><img src="images/twitter.png" width="32" height="32" alt="Follow Me on Twitter!" /></a></li> </ul> <ul class="icons_2"> <li><a href="resume.pdf" title="Download Resume PDF"><img src="images/download.png" width="48" height="48" alt="Download Resume PDF" /></a></li> </ul> </div> <!-- End Social Media and Download Links --> Step 4: Add Schema.org Microdata – Item List The next schema we are going to add to the markup is ItemList. Itemscope Element and Itemtype Attribute The itemscope element and itemtype attribute for the ItemList Schema will be placed in the Skills Section like this: <!-- Begin Skills Section --> <div itemscope itemtype="http://schema.org/ItemList"> Rest of Code Block Here </div> <!-- End Skills Section --> Itemprop Attributes Add the “itemprop” attribute wherever appropriate using <span></span>tags. Below are the attributes we will be using from this schema: ItemList Schema itemprop="itemListElement" Final Markup for the Skills Section   <!-- Begin Skills Section --> <div itemscope itemtype="http://schema.org/ItemList"> <dl> <dt itemprop="name">Skills:</dt> <dd> <section id="skills"> <ul class="list1"> <li itemprop="itemListElement">XHTML</li> <li itemprop="itemListElement">HTML5</li> <li itemprop="itemListElement">PHP</li> <li itemprop="itemListElement">JavaScript</li> <li itemprop="itemListElement">Magento</li> <li itemprop="itemListElement">WordPress</li> </ul> <ul class="list2"> <li itemprop="itemListElement">HTML</li> <li itemprop="itemListElement">CSS</li> <li itemprop="itemListElement">MySQL</li> <li itemprop="itemListElement">jQuery</li> <li itemprop="itemListElement">CMS Made Simple</li> <li itemprop="itemListElement">Photoshop</li> </ul> </section> </dd> </dl> </div> <!-- End Skills Section --> Step 5: Add Schema.org Microdata – Organization Next, the Organization schema is going to be added to the markup. Itemscope Element and Itemtype Attribute The itemscope element and itemtype attribute for the Organization Schema will be placed around each “Position” listed in the “Experience” section, like so: <!-- Position #1 --> <div itemscope itemtype="http://schema.org/Organization"> Rest of Code Block Here </div> <!-- Position #2 --> <div itemscope itemtype="http://schema.org/Organization"> Rest of Code Block Here </div> <!-- Position #3 --> <div itemscope itemtype="http://schema.org/Organization"> Rest of Code Block Here </div> Itemprop Attributes Add the “itemprop” attribute wherever appropriate using <span></span>tags. Below are the attributes we will be using from this schema: Organization Schema itemprop="jobTitle" itemprop="name" itemprop="description" Final Markup for the Experience Section <section id="experience"> <!-- Position #1 --> <div itemscope itemtype="http://schema.org/Organization"> <h2 class="top"><span itemprop="jobTitle">Web Developer / Designer</span></h2> <p class="bus1"><span itemprop="name">Company Name 1</span></p> <p class="time">February 2009 - Present</p> <p itemprop="description"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. </p> </div> <!-- Position #2 --> <div itemscope itemtype="http://schema.org/Organization"> <h2><span itemprop="jobTitle">Web Developer / Programmer</span></h2> <p class="bus1"><span itemprop="name">Company Name 2</span></p> <p class="time">November 2007 - February 2009</p> <p itemprop="description"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. </p> </div> <!-- Position #3 --> <div itemscope itemtype="http://schema.org/Organization"> <h2><span itemprop="jobTitle">Web Developer / Programmer</span></h2> <p class="bus1"><span itemprop="name">Company Name 3</span></p> <p class="time">March 2006 - November 2007</p> <p itemprop="description"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. </p> </div> </section> Step 6: Add Schema.org Microdata – Article Next the Article schema is going to be added to the markup. Itemscope Element and Itemtype Attribute for Article The itemscope element and itemtype attribute for the Article Schema will be placed in the “Article” listed in the Publications Section like this: <section id="publications"> <div itemscope itemtype="http://schema.org/Article"> Rest of Code Block Here </div> </section> Itemprop Attributes Add the “itemprop” attribute wherever appropriate using <span></span>tags. Below are the attributes we will be using from this schema: Article Schema itemprop="name" itemprop="url" Final Markup for the Publications Section <section id="publications"> <div itemscope itemtype="http://schema.org/Article"><span itemprop="name"> <a itemprop="url" href="http://net.tutsplus.com/tutorials/php/how-to-create-an-advanced-twitter-widget/" target="_blank" title="How to Create an Advanced Twitter Widget">"How to Create an Advanced Twitter Widget"</a></span>, <a href="http://net.tutsplus.com/" target="_blank" title="Nettuts+">Nettuts+</a>, 8/25/11 </div> </section> Step 7: Add Schema.org Microdata – EducationalOrganization and PostalAddress Next the EducationalOrganization and PostalAddress schemas are going to be added to the markup. Itemscope Element and Itemtype Attribute for EducationalOrganization The itemscope element and itemtype attribute for the EducationalOrganization Schema will be placed in the Education Section like this: <section id="education"> <div itemscope itemtype="http://schema.org/EducationalOrganization"> Rest of Code Block Here </div> </section> Itemscope Element and Itemtype Attribute for PostalAddress The itemscope element and itemtype attribute for the PostalAddress Schema is nested within the EducationalOrganization Schema and is placed around the code containing the address information in the Education section like this: <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <span itemprop="streetAddress">2801 Bancroft Street</span> <br /> <span itemprop="addressLocality">Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode">43606</span><span itemprop="addressCountry">U.S.A.</span> </div> Itemprop Attributes Add the “itemprop” attribute wherever appropriate using <span></span>tags. Below are the attributes we will be using from these schemas: EducationalOrganization Schema itemprop="name" itemprop="url" PostalAddress Schema itemprop="streetAddress" itemprop="addressLocality" itemprop="addressRegion" itemprop="postalCode" itemprop="addressCountry" Final Markup for the Education Section <section id=\"education\"> <div itemscope itemtype=\"http://schema.org/EducationalOrganization\"> <p class=\"bus1\"><span itemprop=\"name\">University of Toledo</span></p> <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <span itemprop="streetAddress">2801 Bancroft Street</span> <br /> <span itemprop="addressLocality">Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode">43606</span><span itemprop="addressCountry">U.S.A.</span> </div> <p class=\"summary\"><span itemprop=\"name\">Web Design</span></p> <p class=\"time\">2003 - 2005</p> <p class=\"edu-info\"> <a itemprop=\"url\" href=\"http://www.utoledo.edu/\" target=\"_blank\" title=\"University of Toledo\">www.utoledo.edu</a> </p> </div> </section> About Authorship Markup Image shows Authorship Markup (John Resig) displayed in Google search results. In June 2011, Google began to support “Authorship Markup”. Through the use of markup, such as rel="author" and rel="me", search engines can identify content created by the same author across the web. Using Authorship Markup, a multi-authored website can link all articles and posts written by each author to their own specific “author page”. Individual articles and posts of a multi-authored website need to link to the appropriate author page using rel=”author” tag. If the author page also includes a link to the author’s Google Profile using the rel=”me” tag, then the author information may appear in search results. To help users discover quality content, Google is piloting the display of author information in search engine results. This feature is being rolled out gradually and may become a very important part of search engine results and rankings. Rel Tags Both the Contact and Social Media Links sections of the one page resume site template contain URLs linking to a primary website and social media pages. The “rel” attribute needs to be added to the links of these sections so that Authorship Markup can be implemented. Authorship Markup allows search engines to identify content created by the same author across the web. There are two specific rel tags used for Authorship markup: rel="me" rel="author" Most of the links included in the resume web page point to sites that are about the same person. So the rel=”me” tag has been added. For the Google Profile link, the rel=”author” tag has been added. Depending on where you post your online resume, you may need to use the rel=”me” tag for the Google Profile link instead. Step 8: Create a Google Profile If you want to start identifying your original content across the web using Authorship Markup, you first need to create a Google Profile. If you already have a Google Profile page, then you should update your profile information accordingly (add a picture of yourself, information about yourself, occupation, etc.) You also need to make sure there is a +1 tab displayed on the page. If your Google profile includes a good, clear head shot of yourself, it will be eligible to appear as a thumbnail in search results. Step 9: Link Web Page(s) to Your Google Profile According to Google, to establish authorship of a web page, you need to do two things: Link that web page to your Google Profile Update your Google Profile with a link back to the home page of the site the web page is on. You can link your content to your Google Profile using a text link: <a href="[https://plus.google.com/your_profile]?rel=me">Google+</a> or by using the Google Profile Button code: <a rel="me" href="https://profiles.google.com/your_profile"> <img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32"> </a> Google recently made changes to their authorship markup instructions which affect the use of rel="author" and rel="me" tags. The new instructions say to use rel="author" for both the text and profile button links. However, the rel="me" tag needs to be used instead of rel="author". See screenshot below. Screenshot of “Error: Author profile page does not have a rel=me link to a Google Profile” Using John Resig as an example: On the About Page of John Resig’s primary website he linked to his Google Profile using rel=”me” In John Resig’s Google Plus Profile he linked to the Home Page and About Page of his primary website Step 10: Complete Google Authorship Form (Important!) One you have added the Schema.org microdata and completed steps 8 and 9, Complete and submit the Google Authorship Request Form. Your Authorship Markup may not work correctly until the Google Authorship Form is completed and submitted. Step 11: Test Microdata Markup Using Rich Snippets Testing Tool Click on image to see complete testing results You can make sure that Google can correctly parse and display your microdata markup in search results by checking your web page using the Google Rich Snippets Testing Tool. This Testing Tool can check several types of structured data markup including Microdata, Micro formats and RDFa. Note: The Google Rich Snippets Testing Tool is in Beta and can have unexpected results. The results shown in the full size screenshot include an error “Warning: Missing required field fn.” Schema.org does not use the “fn” tag, however the tag is used with Microformats. This is most likely a glitch. All Done! You have now created a nice looking online resume using HTML5 and Schema.org Microdata, which provides information about you that may be displayed in search engine results. Additionally, by using Authorship Markup, you can help search engines identify all of your original content across the web! Have any questions? Let us know in the comments and thank you so much for reading! .. More this article →
34
©2011Spycode > Coding > Programming >Tutorials.All rights reserved.
Proudly designed byTutsPress from Mojo Themes.