Sto cercando di aggiungere i tag meta di Facebook dinamici al mio sito Wordpress. Li sto aggiungendo a single.php invece del file functions.php di solito consigliato perché ho il codice sotto quello per un'app Facebook che ho creato che deve essere eseguito ogni volta che qualcuno visualizza un post di un singolo blog perché quindi pubblica il suo Facebook cronologia che hanno letto quel particolare post. Non voglio usare un plug-in perché alcuni dei miei plugin erano in conflitto tra loro ed era un disastro quello di chiarirlo. Il mio problema più grande è che ho bisogno del tag og:url
per essere dinamico, anche se lo og:title
, og:description
, og:image
, ecc. Dovrebbero essere ugualmente. Ecco il codice che ho nella parte superiore del mio file single.php:Dynamic Facebook o Meta Tags in Wordpress PHP
MODIFICA: QUI È IL CODICE DI LAVORO CHE STO ORA UTILIZZANDO. Grazie per l'aiuto di tutti:
<?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>
Sto cercando di seguire il codice che si trova qui: Generating Facebook Open Graph meta tags dynamically e lo fa Pubblica sul mio timeline di Facebook ogni volta che leggo un post sul blog, ma per il titolo di messaggi corso "titolo predefinito "e quando clicco 'l'anello di default titolo' sulla mia timeline di Facebook, che mi manda all'URL per single.php con un mucchio di sciocchezze alla fine dell'URL
http://MYSITE.com/wp-content/themes/twentyeleven/single.php?fb_action_ids=10151048340001514&fb_action_types=internetlolsapp%3Aview&fb_source=other_multiline
anziché l'URL post sul blog . Mi chiedo se abbia qualcosa a che fare con l'URL che ho inserito nella terza riga dopo "FB.api", ma qualsiasi altra cosa ho provato a mettere lì impedisce all'applicazione di pubblicare qualcosa sulla mia timeline di Facebook quando leggo un post sul blog.
Qualche idea su come risolvere questo problema? Mi sto strappando i capelli per giorni con questo. Qualsiasi aiuto sarebbe più apprezzato! Grazie in anticipo.
usare 'esc_attr()'! – sam