Tôi đang cố gắng thêm các thẻ meta Facebook og động vào trang Wordpress của tôi. Tôi thêm chúng vào single.php thay vì tệp functions.php thường được đề xuất vì tôi có mã bên dưới cho ứng dụng Facebook mà tôi đã tạo cần thực thi mỗi lần ai đó xem bài đăng trên blog riêng lẻ vì sau đó đăng lên Facebook của họ dòng thời gian mà họ đã đọc bài đăng cụ thể đó. Tôi không muốn sử dụng một plugin vì một số plugin của tôi được sử dụng để xung đột với nhau và đó là một mớ hỗn độn để có được điều đó thẳng ra. Vấn đề lớn nhất của tôi là tôi cần thẻ og:url
để động, mặc dù og:title
, og:description
, og:image
, v.v. cũng phải như vậy. Đây là mã tôi có ở đầu tệp single.php của tôi:Dynamic Facebook và Meta Tags trong Wordpress PHP
EDIT: ĐÂY LÀ MÃ LÀM VIỆC TÔI ĐANG BÂY GIỜ SỬ DỤNG. Nhờ sự giúp đỡ của mọi người:
<?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>
Tôi cố gắng để làm theo các mã nằm ở đây: Generating Facebook Open Graph meta tags dynamically và nó gửi cho timeline Facebook của tôi bất cứ khi nào tôi đọc một bài viết trên blog, nhưng đối với danh hiệu đó của bài trình "title mặc định "và khi tôi nhấp vào 'liên kết tiêu đề mặc định' trên timeline Facebook của tôi, nó sẽ gửi tôi đến URL cho single.php với một loạt các vô nghĩa vào cuối URL
http://MYSITE.com/wp-content/themes/twentyeleven/single.php?fb_action_ids=10151048340001514&fb_action_types=internetlolsapp%3Aview&fb_source=other_multiline
thay vì URL bài đăng blog . Tôi tự hỏi liệu nó có liên quan gì đến URL mà tôi đặt ở dòng thứ 3 sau "FB.api" hay không, nhưng bất cứ điều gì khác tôi đã thử đặt ở đó ngăn ứng dụng đăng bất kỳ thứ gì lên dòng thời gian Facebook của tôi khi tôi đọc một bài đăng blog.
Bất kỳ ý tưởng nào về cách sửa lỗi này? Tôi đã kéo tóc của tôi ra ngoài trong nhiều ngày với điều này. Bất kỳ trợ giúp sẽ được đánh giá cao nhất! Cảm ơn trước.
sử dụng 'esc_attr()'! – sam