Динамический Facebook или мета-теги в Wordpress PHP
Я пытаюсь добавить динамические мета-теги og Facebook на мой сайт Wordpress. Я добавляю их в файл single.php вместо обычно рекомендуемого файла functions.php, потому что у меня есть код ниже кода для созданного мною приложения Facebook, которое должно выполняться каждый раз, когда кто-то просматривает отдельное сообщение в блоге, поскольку оно затем публикует их в своем Facebook график того, что они прочитали этот конкретный пост. Я не хочу использовать плагин, потому что некоторые из моих плагинов конфликтовали друг с другом, и было неразбериха с этим. Моя самая большая проблема в том, что мне нужноog:url
тег быть динамическим, хотяog:title
, og:description
, og:image
и т. д. должно быть так же. Вот код, который у меня есть в верхней части моего файла single.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>
Я пытаюсь следовать коду, расположенному здесь:Динамическое создание мета-тегов Facebook Open Graph и он публикуется на моей временной шкале в Facebook всякий раз, когда я читаю сообщение в блоге, но для заголовка он, конечно, публикует & quot; название по умолчанию & quot; и когда я нажимаю & quot; название по умолчанию & quot; ссылка на мою временную шкалу Facebook, она отправляет меня на URL для 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 поста в блоге. Мне интересно, имеет ли это какое-либо отношение к URL, который я указал в 3-й строке после "FB.api", но все, что я пытался добавить туда, не позволяет приложению вообще что-либо публиковать на моей временной шкале Facebook, когда я прочитайте сообщение в блоге.
Любые идеи, как это исправить? Я тянул свои волосы в течение нескольких дней с этим. Любая помощь будет наиболее ценится! Заранее спасибо.