1

I am using wp subtitle plugin for headings in my Local language, and default wordpress title as English headings. I need the plugin generated subtitle as title of shared article on facebook.

get_the_subtitle();

above code is the plugin specific function to call sub headings.

I use code shown below (in function.php) as Facebook Open Graph Meta Data to achieve My goal.

  echo '<meta property="og:title" content="' . get_the_subtitle() . '"/>'; 

but only I get default wordpress title as og:title content. Here is the code in function php.

//Adding the Open Graph in the Language Attributes
function add_opengraph_doctype( $output ) {
    return $output . ' xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"';
}
add_filter('language_attributes', 'add_opengraph_doctype');

//Lets add Open Graph Meta Info

function insert_fb_in_head() {
    global $post;
    if ( !is_singular()) //if it is not a post or a page
        return;
    echo '<meta property="fb:admins" content="XXXXXXX"/>';
    echo '<meta property="og:title" content="' . get_the_subtitle() . '"/>';
    echo '<meta property="og:type" content="article"/>';
    echo '<meta property="og:url" content="' . get_permalink() . '"/>';
    echo '<meta property="og:site_name" content="KERALA NEWS"/>';
    if(!has_post_thumbnail( $post->ID )) { //the post does not have featured image, use a default image
        $default_image="http://www.example.com/wp-content/themes/dw-focus-master/assets/img/logo.png"; //replace this with a default image on your server or an image in your media library
        echo '<meta property="og:image" content="' . $default_image . '"/>';
    }
    else{
        $thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
        echo '<meta property="og:image" content="' . esc_attr( $thumbnail_src[0] ) . '"/>';
    }
    echo "
    ";
}
add_action( 'wp_head', 'insert_fb_in_head', 5 );
  • there is no such thing as "do not work". Things always work but sometimes in unexpected ways.... Please edit the question and include what actually happens, error from the error log and any other relevant debugging information – Mark Kaplun Jan 12 '17 at 6:22
  • most likely that function can be called only at specific places. You should ask the plugin developer, or just debug the function itself – Mark Kaplun Jan 12 '17 at 8:26
0

It could be that there are duplicate Open Graph meta tags being generated AFTER your special hook. Priority would be given to the later tags, which means your customizations don't happen.

Try setting the order of your hook later, so that it happens after whatever else might be generated:

// default is 10; I'm using 11 arbitrarily
add_action( 'wp_head', 'insert_fb_in_head', 11 ); 

More importantly, though, you need to confirm nothing else is generating OG. Check your plugins, and consider using on that easily lets you customize OG data as you need, like Complete Open Graph:

https://wordpress.org/plugins/complete-open-graph/

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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