Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have a problem with how Facebook plugin shows my WordPress-based posts on my timeline. What basically happens is that the post image isn't shown.

Now, the post image I want to show is a custom field of a custom post type, and this is probably what's causing the problem to the Facebook plugin.

On the single-post page I added manually the og: tags, and they're working properly (I see the image if I share the link on Facebook, and the Facebook object debugger shows it too, saying there are no problems).

Do have I to do something to add manually the requested og: tags in post_publish hook?

A sample page is this: http://www.zannoni-store.it/prodotti/canestro-sonoro

And what I added in order to let the image be shown on share is this:

..
$img = get_post(get_post_meta($post->ID, 'immagine', true)); 
echo '<meta property="og:image" content="'.$img->guid.'" />';
..
share|improve this question
add comment

1 Answer

reading the code of the Facebook Official Plugin I've seen that in

open-graph-protocol.php

It's being applied the custom filter 'fb_meta_tags':

..
$meta_tags = apply_filters( 'fb_meta_tags', $meta_tags, $post );
..

So in my plugin I've added a filter for 'fb_meta_tags' that adds/replace the image set from the Facebook plugin in this way:

function clancat_product_fbmeta($meta_tags, $post){
    ..
    $img = get_post(get_post_meta($post->ID, 'immagine', true)); 
    $meta_tags['http://ogp.me/ns#image'] = $img->guid;
    ..
    return $meta_tags;
}

..

add_filter( 'fb_meta_tags', 'clancat_product_fbmeta',10,2);

Please note that the "2" (4th param passed to add_filter) is mandatory, because the Facebook filter it's providing the $meta_tags array and the $post object.

I think this solution ca be easily extended to any post-type / custom-field etc. situation; and that's the correct way to achieve this goal.

Unfortunately this not solve the publish problem.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.