Fixed PHP syntax for compatibility with the server environment.
[WebKit-https.git] / Websites / webkit.org / wp-content / plugins / social-meta.php
1 <?php
2 /*
3 Plugin Name: Social Meta
4 Description: Adds schema.org, Twitter Card, Open Graph meta for posts and pages
5 Version:     1.0
6 Author:      Jonathan Davis
7 Author URI:  http://webkit.org
8 */
9
10 add_action('wp_head', function() { ?>
11     <?php
12         $image_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_id), 'large' );
13         $image_url = $image_src[0];
14     ?>
15
16     <!-- Schema.org markup -->
17     <meta itemprop="name" content="<?php the_title(); ?>">
18     <meta itemprop="description" content="<?php the_excerpt(); ?>">
19     <?php if ( $image_url ): ?>
20     <meta itemprop="image" content="<?php echo $image_url; ?>">
21     <?php endif; ?>
22
23     <!-- Twitter Card data -->
24     <meta name="twitter:card" content="summary_large_image">
25     <meta name="twitter:site" content="@webkit">
26     <meta name="twitter:title" content="<?php the_title(); ?>">
27     <meta name="twitter:description" content="<?php the_excerpt(); ?>">
28     <?php if ( '' !== ( $twitter_handle = get_the_author_meta('twitter') ) ): ?>
29     <meta name="twitter:creator" content="@<?php echo esc_html($twitter_handle); ?>">
30     <?php endif; ?>
31     <?php if ( $image_url ): // Twitter summary card with large image must be at least 280x150px ?>
32     <meta name="twitter:image:src" content="<?php echo $image_url; ?>">
33     <?php endif; ?>
34
35     <!-- Open Graph data -->
36     <meta property="og:title" content="<?php the_title(); ?>" />
37     <meta property="og:type" content="article" />
38     <meta property="og:url" content="<?php the_permalink(); ?>" />
39     <?php if ( $image_url ): ?>
40     <meta itemprop="og:image" content="<?php echo $image_url; ?>">
41     <?php endif; ?>
42     <meta property="og:description" content="<?php the_excerpt(); ?>" />
43     <meta property="og:site_name" content="<?php bloginfo('title'); ?>" />
44     <meta property="article:published_time" content="<?php the_time('c'); ?>" />
45     <meta property="article:modified_time" content="<?php the_modified_date('c'); ?>" />
46     <?php
47         $categories = wp_get_object_terms( get_the_ID(), 'category', array( 'fields' => 'names' ) );
48         $tags = wp_get_object_terms( get_the_ID(), 'post_tag', array( 'fields' => 'names' ) );
49
50         if ( ! empty($categories) ):
51             $section = array_shift($categories);      // The first category is used as the section
52             $tags = array_merge($categories, $tags);  // The rest are prepended to the tag list
53     ?>
54     <meta property="article:section" content="<?php echo esc_attr($section); ?>" />
55     <?php
56         endif;
57
58         if ( ! empty($tags) ): foreach( $tags as $tag ):
59     ?>
60     <meta property="article:tag" content="<?php echo esc_attr($tag); ?>" />
61     <?php
62         endforeach; endif;
63     ?>
64
65 <?php
66 });