2012-06-17 16 views
7

में मेटा टैग्स मैं अपनी वर्डप्रेस साइट पर गतिशील फेसबुक और मेटा टैग जोड़ने की कोशिश कर रहा हूं। मैं उन्हें आमतौर पर अनुशंसित फ़ंक्शंस.एफ़.पी.पी. फ़ाइल के बजाय सिंगल.एफ़पी में जोड़ रहा हूं क्योंकि मेरे पास एक फेसबुक ऐप के लिए नीचे कोड है जिसे मैंने व्यक्तिगत ब्लॉग पोस्ट को देखने पर हर बार निष्पादित करने की आवश्यकता है क्योंकि यह उनके फेसबुक पर पोस्ट करता है समयरेखा है कि उन्होंने उस विशेष पोस्ट को पढ़ा है। मैं प्लगइन का उपयोग नहीं करना चाहता क्योंकि मेरे कुछ प्लगइन्स एक-दूसरे के साथ संघर्ष करते थे और यह सीधा होने के लिए एक गड़बड़ था। मेरी सबसे बड़ी समस्या यह है कि मुझे गतिशील होने के लिए og:url टैग की आवश्यकता है, हालांकि og:title, og:description, og:image आदि भी होना चाहिए। मेरे पास मेरे एकल.एफ़.पी. फ़ाइल के शीर्ष पर मौजूद कोड है:डायनेमिक फेसबुक और वर्डप्रेस PHP

संपादित करें: यहां काम करने वाला कोड है जो अब मैं उपयोग कर रहा हूं। हर किसी की मदद के लिए धन्यवाद:

<?php 

$params = array(); 
if(count($_GET) > 0) { 
    $params = $_GET; 
} else { 
    $params = $_POST; 
} 
// defaults 
if($params['type'] == "") $params['type'] = "picture"; 
if($params['locale'] == "") $params['locale'] = "en_US"; 
if($params['description'] == "") $params['description'] = "Visit Internet LOLs for the funniest humor on the web! :)"; 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# internetlolsapp: http://ogp.me/ns/fb/internetlolsapp#"> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 

     <!-- Open Graph meta tags --> 
     <meta property="fb:app_id" content="378076268920252" /> 
     <meta property="og:site_name" content="meta site name"/> 
     <meta property="og:url" content="<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>"/> 
     <meta property="og:type" content="internetlolsapp:<?php echo $params['type']; ?>"/> 

     <meta property="og:description" content="<?php echo $params['description']; ?>"/> 

    </head> 
</html> 

    <script type="text/javascript"> 
    function postView() 
    { 
     FB.api(
     '/me/internetlolsapp:view', 
     'post', 
     { picture: '<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>' }, 
     function(response) { 
     if (!response) { 
      // FAIL GRACEFULLY alert('Error occurred : No Response'); 
     } else if (response.error) { 
      // FAIL GRACEFULLY alert('Error occurred : ' + response.error); 
     } else { 
      // SUCCESS alert('View was successful! Action ID: ' + response.id); 
     } 
     }); 
    } 
    </script> 
</head> 
<body> 
    <div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : '378076268920252', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
     }); 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     d.getElementsByTagName('head')[0].appendChild(js); 
    }(document)); 
    </script> 



</body> 

<body onload='postView()'> 
</html> 

मैं यहाँ स्थित कोड का पालन करने की कोशिश कर रहा हूँ: Generating Facebook Open Graph meta tags dynamically और जब भी मैं एक ब्लॉग पोस्ट पढ़ें यह मेरे फेसबुक टाइमलाइन पर पोस्ट करता है, लेकिन शीर्षक के लिए यह पाठ्यक्रम पदों की "डिफ़ॉल्ट शीर्षक "और जब मैं क्लिक करें" मेरे फेसबुक टाइमलाइन पर डिफ़ॉल्ट शीर्षक "लिंक, यह मेरे यूआरएल के लिए single.php के लिए बकवास के एक समूह के साथ URL के अंत

http://MYSITE.com/wp-content/themes/twentyeleven/single.php?fb_action_ids=10151048340001514&fb_action_types=internetlolsapp%3Aview&fb_source=other_multiline 

के बजाय ब्लॉग पोस्ट URL पर भेजता है । मैं सोच रहा हूं कि अगर मुझे "एफबी.पीआई" के बाद तीसरी पंक्ति में डाले गए यूआरएल के साथ कुछ करना है, लेकिन मैंने जो कुछ भी डालने की कोशिश की है, तो ऐप को पढ़ने पर मेरी फेसबुक टाइमलाइन पर कुछ भी पोस्ट करने से रोकता है एक ब्लॉग पोस्ट

कोई विचार यह कैसे ठीक करें? मैं इसके साथ दिनों के लिए अपने बालों को खींच रहा हूँ। कोई भी सहायता सराहनीय होगी! अग्रिम में धन्यवाद।

उत्तर

1

वर्डप्रेस के साथ, आपको $_GET या $_POST के माध्यम से इस जानकारी को पास करने की आवश्यकता नहीं है। वर्डप्रेस यह सब आपके लिए उपलब्ध कराता है।

मैं आपकी इच्छा को एक प्लगइन का उपयोग न करने की इच्छा को समझ सकता हूं, लेकिन उनमें से कुछ वर्डप्रेस एसईओ या आधिकारिक फेसबुक जैसे आपके लिए इसे जोड़ सकते हैं और अपना जीवन बहुत आसान बना सकते हैं। यदि नहीं, तो एक सरल खोज लें और यह देखने के लिए इसे अलग करें कि वे क्या कर रहे हैं।

यदि आप वास्तव में अपना खुद का रोल करना चाहते हैं, तो आपको template tags का उपयोग करके शीर्षक सेट करना चाहिए। आप the_title() फ़ंक्शन के माध्यम से एक पोस्ट शीर्षक पुनर्प्राप्त कर सकते हैं। अन्य मेटाडेटा पॉइंट्स के लिए अन्य लोग हैं जिन्हें आप ढूंढ रहे हैं।

एक अंतिम नोट: आपकी og:image फ़ाइल को कम से कम 50px होना चाहिए या फेसबुक इसे प्रदर्शित नहीं करेगा। एक फेविकॉन, जैसे आप उपयोग करने की कोशिश कर रहे हैं, लगभग हमेशा बहुत छोटा है। पूर्ण छवि विनिर्देशों के लिए this page देखें।

0

og:url & og:title गतिशील बनाने के लिए, वहाँ भी अन्य डेटा $post वस्तु के माध्यम से avilable है है इस

<meta property="og:url" content="<?php echo get_permalink($post->ID); ?>"/> 
<meta property="og:title" content="<?php echo $post->post_title; ?>"/> 

उपयोग करके देखें। यूआरएल टैग गतिशील: अधिक जानकारी http://www.rlmseo.com/blog/wordpress-post-variable-quick-reference/

+0

'esc_attr() 'का उपयोग करें! – sam

0

मैं फेसबुक ओग बनाने के लिए कोड की निम्न लाइनों का उपयोग करके इसे सुलझाने के लिए समाप्त हो गया देखें

<meta property="og:url" content="<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>"/> 

{ picture: '<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>' }, 
+0

किसी कारण से यह मेरे लिए काम नहीं कर रहा है। मैंने इसे जावास्क्रिप्ट के साथ बनाया है (यादृच्छिक रूप से ओजी: छवि संपत्ति के लिए एक छवि का चयन)। लेकिन यह अद्यतन नहीं हो रहा है। जानने का कोई मौका क्यों? – aleXela

1

क्या इसके लायक है, मैं रयान से एक समारोह का उपयोग करें एस Cowles यह करने के लिए और यह पूरी तरह से काम करता है।यह डेटा को गतिशील रूप से wp_head हुक के साथ सम्मिलित करता है जिससे प्रत्येक पृष्ठ गतिशील रूप से ओजी मेटा जानकारी लोड करता है। किसी भी समय आपके पृष्ठ लिंक में से एक का उपयोग एफबी स्टेटस बॉक्स में किया जाता है, यह उस पृष्ठ से संबंधित जानकारी को कॉल करता है। मैं अपने सभी पृष्ठों पर फीचर्ड छवियों का उपयोग करता हूं लेकिन यदि आप नहीं करते हैं तो आप आसानी से डिफ़ॉल्ट फ़ॉलबैक में लिख सकते हैं।

यह मेरा कार्यों फ़ाइल में है:

/* 
Plugin Name: Facebook Featured Image and Open Graph Meta Tags 
Version: 1.0 
Plugin URI: http://www.ryanscowles.com 
Description: Automatically set the posts' Featured Image as the thumbnail and set appropriate Open Graph meta tags for sharing on Facebook. 
Author: Ryan S. Cowles 
Author URI: http://www.ryanscowles.com 
*/ 

define ('pluginDirName', 'fb-featured-image'); 
// Allow for Facebooks's markup language 
add_filter('language_attributes', 'add_og_xml_ns'); 
function add_og_xml_ns($content) { 
    return ' xmlns:og="http://ogp.me/ns#" ' . $content; 
} 

add_filter('language_attributes', 'add_fb_xml_ns'); 
function add_fb_xml_ns($content) { 
    return ' xmlns:fb="https://www.facebook.com/2008/fbml" ' . $content; 
}  

// Set your Open Graph Meta Tags 
function fbogmeta_header() { 
    if (is_single()) { 
    ?> 
     <meta property="og:title" content="<?php the_title(); ?>"/> 
     <meta property="og:description" content="<?php echo strip_tags(get_the_content($post->ID)); ?>" /> 
     <meta property="og:url" content="<?php the_permalink(); ?>"/> 
     <?php $fb_image = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'thumbnail'); ?> 
     <?php if ($fb_image) : ?> 
      <meta property="og:image" content="<?php echo $fb_image[0]; ?>" /> 
      <?php endif; ?> 
     <meta property="og:type" content="<?php 
      if (is_single() || is_page()) { echo "article"; } else { echo "website";} ?>" 
     /> 
     <meta property="og:site_name" content="<?php bloginfo('name'); ?>"/> 

<?php 
    } 
} 
add_action('wp_head', 'fbogmeta_header'); 
2

मैं फेसबुक से एक समारोह अनुकूलित छवि और ओपन ग्राफ़ मेटा टैग (http://www.ryanscowles.com) विशेष रुप से प्रदर्शित और functions.php पर चिपकाया है, यह काम करता है! (वर्डप्रेस 3.5.1)

<?php 
//function to limit description to 300 characters 
function limit($var, $limit) { 
    if (strlen($var) > $limit) { 
     return substr($var, 0, $limit) . '...'; 
    } 
    else { 
     return $var; 
    } 
} 

// Set your Open Graph Meta Tags 
function fbogmeta_header() { 
    if (is_single()) { 
     //getting the right post content 
     $postsubtitrare = get_post_meta($post->ID, 'id-subtitrare', true); 
     $post_subtitrare = get_post($postsubtitrare); 
     $content = limit(strip_tags($post_subtitrare-> post_content),297); 
     ?> 
     <meta property="og:title" content="<?php the_title(); ?>"/> 
     <meta property="og:description" content="<?php echo $content; ?>" /> 
     <meta property="og:url" content="<?php the_permalink(); ?>"/> 
     <?php $fb_image = wp_get_attachment_image_src(get_post_thumbnail_id( get_the_ID()), 'thumbnail'); ?> 
     <?php if ($fb_image) : ?> 
     <meta property="og:image" content="<?php echo $fb_image[0]; ?>" /> 
     <?php endif; ?> 
     <meta property="og:type" content="<?php 
     if (is_single() || is_page()) { echo "article"; } else { echo "website";}  ?>" 
     /> 
     <meta property="og:site_name" content="<?php bloginfo('name'); ?>"/> 
     <?php 
     } 
     } 
add_action('wp_head', 'fbogmeta_header'); 
?> 
संबंधित मुद्दे