Facebook Open Graph protocol
allows you to share your blog content not only with your readers, but
their Facebook friends as well. The best part is – whenever someone liked
your content(s), it will be published on their Facebook profile. But
that’s not all, Open Graph allows you to explore more interesting ways
to interact and engage with your readers. Ultimately – if this is done
right – it builds up your brand and increases your site’s traffic.
In today’s post, we are going to look into how to integrate Facebook Open Graph with a self-hosted WordPress in a detailed step-by-step guide. It will require editing your existing WordPress theme and creating a Facebook application (if you don’t have one).
Ready? Let’s fire up the browser and your favourite code editor. Full guide after jump.
Creating an application is easy, here’s what you do:
Look for this following line of code, or one that starts with <html xmlns="http://www.w3.org/…
Replace it with:
Keep header.php open, we are going to need it for the 3rd step.
Here are some of the the values you’ll need to alter:
A simple workaround will be to replace Line 12 with the following code:
Next, open up functions.php and insert the following code:
This replacement code attempts to use a function call
Place it in header.php, right after
Replace your_fb_app_id in Line 4 with Application ID from Step 1 earlier.
Check the properties and its values, make sure they are correct.
Next, get a friend to Like it. You should see something similar appearing in his Facebook profile:
Facebook Open Graph Meta in WordPress is a WordPress plugin that adds Facebook meta data to avoid no thumbnail issue, wrong title issue, wrong description issue, etc.
Ready? Let’s fire up the browser and your favourite code editor. Full guide after jump.
Step 1. Create a facebook App
We’ll need an Application ID and to get that, you’ll need to create a Facebook App. If you already have a one, move on to step 2.Creating an application is easy, here’s what you do:
- Logon to Facebook, go to the Developer’s page.
- Click "Set up a new app" button on the top right corner.
- Give a name to your new app, agree to Facebook terms, hit Create app.
- Go to Web Site tab, fill up Site URL and Site Domain.
- Note down the value of Application ID somewhere and hit the "Save Changes" button.
Step 2. Replace <HTML> Tag
Open up your theme’s header file (header.php) in your favorite editor. Always keep a backup copy just in case anything goes wrong.Look for this following line of code, or one that starts with <html xmlns="http://www.w3.org/…
- <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
- <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="https://www.facebook.com/2008/fbml">
Step 3. Insert OG <Meta> tags
Paste the following code right after<head>
tag, or before </head>
tag.- <?php if (have_posts()):while(have_posts()):the_post(); endwhile; endif;?>
- <!-- the default values -->
- <meta property="fb:app_id" content="your_fb_app_id" />
- <meta property="fb:admins" content="your_fb_admin_id" />
- <!-- if page is content page -->
- <?php if (is_single()) { ?>
- <meta property="og:url" content="<?php the_permalink() ?>"/>
- <meta property="og:title" content="<?php single_post_title(''); ?>" />
- <meta property="og:description" content="<?php echo strip_tags(get_the_excerpt($post->ID)); ?>" />
- <meta property="og:type" content="article" />
- <meta property="og:image" content="<?php if (function_exists('wp_get_attachment_thumb_url')) {echo wp_get_attachment_thumb_url(get_post_thumbnail_id($post->ID)); }?>" />
- <!-- if page is others -->
- <?php } else { ?>
- <meta property="og:site_name" content="<?php bloginfo('name'); ?>" />
- <meta property="og:description" content="<?php bloginfo('description'); ?>" />
- <meta property="og:type" content="website" />
- <meta property="og:image" content="logo.jpg" /> <?php } ?>
- Line 3: Replace your_fb_app_id with the Application ID from Step 1.
- Line 4: You can get your_fb_admin_id under your Facebook Insights page, (More info). Click on the "Insight for your website" green button, grab the entire string of code and replace Line 4.
- Line 12: This line determines the image that represents your post. If your theme supports WordPress Post Thumbnails, it should work fine. But if it doesn’t, it will fail gracefully without an image. Check out Step 3a for an alternative workaround.
- Line 19: Replace logo.jpg with an url to your blog’s logo. It will be displayed when a non-post page on your blog is shared on Facebook.
Step 3a – When "wp_get_attachment_thumb_url" Fail
Whenwp_get_attachment_thumb_url()
failed to work, you are likely going to a content attribute with no value, like what’s shown below:- <meta property="og:image" content="" />
- <meta property="og:image" content="<?php if (function_exists('catch_that_image')) {echo catch_that_image(); }?>" />
- function catch_that_image() {
- global $post, $posts;
- $first_img = '';
- ob_start();
- ob_end_clean();
- $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
- $first_img = $matches [1] [0];
- if(emptyempty($first_img)){
- //Defines a default image
- $first_img = "/images/default.jpg";
- }
- return $first_img;
- }
catch_that_image()
to grab and output the URL of the first image it comes to encounter.
Replace line 10 with URL to a default image if the function fails to
find its first image.Step 4. Insert Facebook Javascript SDK
The following Javascript gives you to access all of the features of the Graph API and Dialogs. It also allows you to integrate Facebook social plugins like the Like button, Facepile, Recommendations, etc with ease.Place it in header.php, right after
<body>
- <div id="fb-root"></div>
- <script>
- window.fbAsyncInit = function() {
- FB.init({appId: 'your_fb_app_id', status: true, cookie: true,
- xfbml: true});
- };
- (function() {
- var e = document.createElement('script'); e.async = true;
- e.src = document.location.protocol +
- '//connect.facebook.net/en_US/all.js';
- document.getElementById('fb-root').appendChild(e);
- }());
- </script>
Step 5. Let’s test it!
We are done integrating Facebook Open Graph to the WordPress blog. Let’s give it a couple of test to make sure we’ve done things correctly.Test #1 – View source code
Take a look at the source codes of one of the blog post, you should have something like this:Check the properties and its values, make sure they are correct.
Test #2 – Install a Like Box
If you haven’t install a Facebook Like Button, then it’s probably time to get one. Place the following code anywhere (preferably before content or after content) inside single.php:- <fb:like href="<?php the_permalink() ?>" layout="button_count" show_faces="false" width="450" action="like" colorscheme="light"></fb:like>
Extra: WordPress Plugin
If somehow you failed to install the codes or need this to be done quick and easy – there’s a WordPress plugin for that.Facebook Open Graph Meta in WordPress is a WordPress plugin that adds Facebook meta data to avoid no thumbnail issue, wrong title issue, wrong description issue, etc.
No comments:
Post a Comment