DIY میڈیا ہوم علامت

اپنے گھر تھیٹر اور ہائی فائی سیٹ اپ کے ڈیزائن اور پیدا کرنے کے لئے الٹی سائٹ.

2ورڈپریس علامتMicrodata کے لئے امیر کے ٹکڑوں جانچ کے آلے فکسنگ

کے دوران 2 years ago I published an article on how to fix problems with WordPress themes which didn’t pass the Google Rich Snippets Testing Tool. Since then lots has changedWordPress and most themes have better support, HTML5 اور CSS3 کے پہنچ چکے ہیں, اور گوگل, یاہو اور بنگ مل کر Microdata پر توجہ مرکوز کرنے کا فیصلہ کیا ہے, schema.org کے ذریعے. At the time microformats seemed the easiest way to mark up pages, and the testing tool had the most comprehensive support for these. The move to Microdata and the changes to WordPress required a new article: یہ بات ہے!

Instead of having lots of separate articles for different themes I’ve decided to try to provide all the information in 1 رہنما. This makes it easier to keep up to date, and means there is just 1 central point for all requests and discussion. It also makes more sense as several of the steps are the same regardless of what theme you are using. I’m not going to cover all the optional extras in this article, just the basics to get your site to validate with the tool. Once you’ve managed that you should find adding extra markup is relatively easy. So lets get started

Add a link from your google profile to your site

You will see on my google+ profile that I have a public link to HTTPS://diymediahome.orgyou will need the same for your own site. Ideally you will need all of your authors to have a google profile that is linked to your site in the same way as this.

  1. Log in to your google profile
  2. Scroll down until you see the links section somewhere towards the bottom right of the page
  3. پر کلک کریں میں ترمیم کریں link
  4. Under the contributor to section click Add custom link
  5. Make sure the box to the right of the text contributor to is set to public
  6. Enter your site name (مثلا. DIY میڈیا ہوم) and address (مثلا. HTTPS://diymediahome.org)
  7. محفوظ کریں پر کلک

Add a link from your site to your google profile

Now we need to add a link from your author page to your google profile. ہیں 2 alternative ways to do this, I highly recommend using the Yoast یہ پلگ ان.

  1. انسٹال Yoast کی یہ پلگ ان OR add the following code to the functions.php file of your theme
    function update_contactmethods( $contactmethods ) {
    // Add Google Profiles
    $contactmethods['googleplus'] = 'Google+';
    // Add Twitter
    $contactmethods['twitter'] = __( 'Twitter username (without @)', 'wordpress-seo' );
    
    return $contactmethods;
    }
    add_filter( 'user_contactmethods', 'update_contactmethods', 10, 1);
  2. Go to your author profile in the wordpress admin interface (hover over صارفین in the left-hand menu, اور پر کلک کریں آپ کی پروفائل)
  3. میں Google+ کی field add a link to your google profile (مثلا. HTTPS://plus.google.com/104657888470728381512/)
  4. Make sure either you, or your other site authors do the same thing, and each link to your own google profiles
  5. اب, if you’re using the Yoast plugin, کرنے کے لئے جانا یہ menu and select Titles and Metas, جlick on the گھر menu at the top of the page and in the Author highlighting pulldown box select the user you want to use as the author of the homepage
  6. If you’re insistent about not using the Yoast plugin you will need to manually add the following code to header.php (assuming you have one). Don’t forget to change my google profile url to yours. This code will use the post author’s google profile url if there is a valid one, and will use a default (yours) if there isn’t.
    <link rel="مصنف" href کی ="<?php $gplus   = 'https://plus.google.com/115369062315673853712/posts'; اگر ( is_singular() ) {global $post; $gplus = get_the_author_meta( 'googleplus', $post->post_author );} echo $gplus; ?>"/>

Fix errors of a missing “اپ ڈیٹ” میدان

Most wordpress themes include information about when the post was published in the post information area, but very few also include when it was last updated. This is a pity, because updated is required whereas published actually isn’t! Adding it is easy though, and again, وہاں ہے 2 ways, the proper way and the quick hack way. I recommend the proper way of course, but if necessary you can resort to the quick hack. We’re also going to change from microformats to microdata at the same time.

The proper way

We’re going to add some additional information to post headers, both for search engines and for our visitors. We will need to do this for posts, pages, archives and the homepage.

  1. We need to find the file that contains the code which generates the published link. This will almost certainly use the wordpress function get_the_date(). You can search through your theme files, or refer to theme specific details below where I have provided details for lots of themes
  2. We are going to check if the published and updated dates are the same. If they are we will just add the extra dateUpdated itemprop but if they are different we will output some extra text to the visitor
  3. We’re going to add the following (and modify it as it explains)
    <?php if(get_the_date()==get_the_modified_date()): ?>
    
    //we're going to use the original code just with the updated class added
    //put your theme's original code here
    //remove any class=""
    //add itemprop="datePublished dateCreated dateModified" to the ایچ ٹی ایم ایل tag surrounding the get_the_date() تقریب
    
    <?php else: ?>
    
    //we're going to use slightly code just with the updated date added
    //copy your theme's original code to here and then modify it as below
    //remove any class=""
    //add itemprop="datePublished dateCreated" to the ایچ ٹی ایم ایل tag surrounding the get_the_date() function
    //add in a new html tag into the line where you want it to appear as below
    //Updated <?php echo get_the_modified_date() ?>
    
    <?php endif; ?>
  4. You’ll either have to figure out the original theme’s code and edit it, or refer to the details for specific themes below.
  5. You may have to repeat this edit for multiple files

The quick hack

We’re going to cheat and supply the published date as the updated date, even if the post has actually been updated more recently. If the post has been updated then we’ll actually be supplying incorrect information, but it will still validate. It really is better to do it properly if possible, but if you’re insistent on doing it this way read on. As above we will need to do this for posts, pages, archives and the homepage.

  1. As above we need to find the file that contains the code which generates the published link. This will almost certainly use the wordpress function get_the_date(). You can search through your theme files, or refer to the table below where I have provided details for lots of themes
  2. Find the ایچ ٹی ایم ایل element that surrounds the date (often it will have class="published").
  3. Edit the element by removing the class and adding the following instead itemprop="datePublished dateCreated dateUpdated"
  4. As above, you may need to repeat this edit in multiple files

Replacing the built-in microformats (because mixing rich snippet formats breaks things)

By default wordpress is still using microformat markup for comments, which sadly seems to break microdata markup of things like recipes. The best way to fix this is to remove the microformat markup and replace it with microdata markup. بدقسمتی سے, the wordpress core functions that produce this markup don’t have a conveniently located filter or hook so this requires a bit of tinkering about.

Replacing vcard in the comments section

  1. What we’re going to do is use a comment callback to change the output of comments. Many themes already use a callback which we can modify, and for those that don’t we’ll add one based on the wordpress default
  2. Check if you theme already has a comment callbacksearch your theme files for the function wp_list_comments. If it includes the code callback= یا 'callback' => then it is using a callback which you should be able to find (probably in functions.php) by looking for the name of the callback function, which is the part after the = sign or arrow, مثلا. wp_list_comments( array( 'callback' => 'twentyten_comment' ) ); یا wp_list_comments('type=comment&callback=bones_comments');. If it doesn’t then we will need to add one by adding callback=diymh_comment یا array( 'callback' => 'diymh_comment' ) to the line.
  3. If you needed to add a comment callback then you will need to add the following code to functions.php
    function diymh_comment($تبصرہ, $ARGS, $depth) {
    $GLOBALS['تبصرہ'] = $comment; ?>
    <کہ <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
      <div کی ID ="comment-<?php comment_ID(); ?>">
    <div کلاس ="comment-author novcard">
    <?php echo get_avatar($تبصرہ,$size='48',$default='<path_to_url>' ); ?>
    
    <?php printf(__('<cite class="FN">%ے</cite> <مدت کلاس ="says">says:</دورانیہ>'), get_comment_author_link()) ?>
    </div کے>
    <?php if ($comment->comment_approved == '0') : ?>
    <em><?php _e('Your comment is awaiting moderation.') ?></em>
    </ BR>
    <?php endif; ?>
    
    <div کلاس ="comment-meta commentmetadata"><ایک href کی ="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></ایک><?php edit_comment_link(__('(میں ترمیم کریں)'),'  ','') ?></div کے>
    
    <?php comment_text() ?>
    
    <div کلاس ="جواب">
    <?php comment_reply_link(array_merge( $ARGS, سرنی('depth' => $depth, 'max_depth' => $ARGS['max_depth']))) ?>
    </div کے>
      </div کے>
    <?پی ایچ پی
    }
  4. You will notice that this code has a class="novcard" instead of the original class="vcard".
  5. If your theme did have its own callback you need to find the callback function and replace any instances of class="vcard" کے ساتھ class="novcard"

Replacing hfeed in the header

  1. اگلے, we need to also remove any instances of class="hfeed", which are usually found in header.php. Replace all occurrences of hfeed کے ساتھ nohfeed

Replacing hentry and title rich snippets

  1. We can replace these elements with a couple of neat functions added to functions.php
    function diymh_replace_hentry($classes){
    اگر(($key = array_search('hentry', $classes)) !== false) $classes[$اہم]='nohentry';
    return $classes;
    }
    add_filter('post_class','diymh_replace_hentry');
    
    function diymh_microdata_title($عنوان) {
        واپسی '<span itemprop="نام">'.$title.'</دورانیہ>';
    }
    add_filter('the_title', 'diymh_microdata_title', 10, 2);

Adding the information type (مثلا. Article, Recipe, وغیرہ) to the article header

  1. پہلا, decide what type of work you are publishingmost likely an article. Have a look at the list at schema.org
  2. Find the ایچ ٹی ایم ایل tag which contains the function post_class()
  3. Add the code itemscope itemtype="https://schema.org/Article" (replace article if you picked a different type of work)

آخر, to avoid breaking any styles

  1. You will need to edit your theme’s style.css and do a search/replace operation to replace all instances of .vcard کے ساتھ .novcard and replace all instances of .hfeed کے ساتھ .nohfeed so that our changes don’t mess up any سی ایس ایس styling of our comments

Fixing any other errors

Any other changes necessary will be detailed on a per theme basis below. If you have a theme which you are unable to fix please post a comment. If its a free theme please let me know the theme name, and if it is a premium theme please let me know so I can provide you with an e-mail address to send a zipped copy to.

Theme specific details

Before just carrying out these edits don’t forget to carry out the steps to link your google profile and your site to each other, and install Yoast یہ, or add the code provides above.

 

Twenty Ten 1.5

In functions.php replace this

function twentyten_posted_on() {
printf( __( '<مدت کلاس ="%1$ے">Posted on</دورانیہ> %2$ے <مدت کلاس ="meta-sep">کی طرف سے</دورانیہ> %3$s', 'twentyten' ),
'meta-prep meta-prep-author',
sprintf( '<ایک href کی ="%1$ے" عنوان ="%2$ے" rel="bookmark"><مدت کلاس ="entry-date">%3$ے</دورانیہ></ایک>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<مدت کلاس ="author vcard"><a class="url fn n" href کی ="%1$ے" عنوان ="%2$ے">%3$ے</ایک></دورانیہ>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
get_the_author()
)
);
}

With this

function twentyten_posted_on() {
اگر(get_the_date()==get_the_modified_date()){
printf( __( '<مدت کلاس ="%1$ے">Posted on</دورانیہ> %2$ے <مدت کلاس ="meta-sep">کی طرف سے</دورانیہ> %3$s', 'twentyten' ),
'meta-prep meta-prep-author',
sprintf( '<ایک href کی ="%1$ے" عنوان ="%2$ے" rel="bookmark"><span itemprop="datePublished dateCreated dateModified">%3$ے</دورانیہ></ایک>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<مدت کلاس ="author vcard"><a itemprop="مصنف" href کی ="%1$ے" عنوان ="%2$ے">%3$ے</ایک></دورانیہ>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
get_the_author()
)
);
}
اور{
printf( __( '<مدت کلاس ="%1$ے">Posted on</دورانیہ> %2$ے <مدت کلاس ="meta-sep">کی طرف سے</دورانیہ> %3$ے.  تازہ کاری <span itemprop="dateModified">%4$ے</دورانیہ>.', 'twentyten' ),
'meta-prep meta-prep-author',
sprintf( '<ایک href کی ="%1$ے" عنوان ="%2$ے" rel="bookmark"><span itemprop="datePublished dateCreated">%3$ے</دورانیہ></ایک>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<مدت کلاس ="author vcard"><a itemprop="مصنف" href کی ="%1$ے" عنوان ="%2$ے">%3$ے</ایک></دورانیہ>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
get_the_author()
),
get_the_modified_date()
);
}
}

In functions.php replace this

<div کلاس ="comment-author vcard">

With this

<div کلاس ="comment-author novcard">

In header.php replace this

<div کی ID ="wrapper" کلاس ="hfeed">

With this

<div کی ID ="wrapper" کلاس ="nohfeed">

In loop.php (3 مثال کے طور پر), loop-single.php, loop-page.php and loop-attachment.php replace this

<div کی ID ="post-<?php the_ID(); ?>" <?php post_class(); ?>>

With this

<div کی ID ="post-<?php the_ID(); ?>" <?php post_class(); ?> itemscope itemtype="HTTPS://schema.org/Article">
Twenty Eleven 1.5

coming very soon

Annotum Base 1.1.1

میں 7 فائلوں (functions\features-articles.php, excerpt\type-article.php, excerpt\excerpt-default.php, content\type-article.php, content\page.php, content\content-default.php, content\article-pdf.php) کی جگہ لے لے

<مضمون <?php post_class('article-full'); ?>>

کے ساتھ

<مضمون <?php post_class('article-full'); ?> itemscope itemtype="HTTPS://schema.org/Article">

 

ذیل میں تبصرہ کی طرف سے ہمیں اپنے خیالات بھیجیں کریں! آپ کے سبسکرائب کرنا چاہتے ہیں تو سب سے اوپر دائیں مینو پر لنک سبسکرائب استعمال کریں. آپ بھی ذیل سماجی روابط کا استعمال کرتے ہوئے کی طرف سے اپنے دوستوں کے ساتھ اس کا اشتراک کر سکتے ہیں. چیرس.

جواب چھوڑیں

2 تبصرے