Estoy tratando de agregar meta tags dinámicos de Facebook a mi sitio de Wordpress. Los estoy agregando a single.php en lugar del usualmente recomendado archivo functions.php porque tengo un código debajo del que para una aplicación de Facebook que he creado y que debe ejecutarse cada vez que alguien ve una publicación de blog individual porque luego se publica en su Facebook línea de tiempo que han leído esa publicación en particular. No quiero usar un complemento porque algunos de mis complementos solían entrar en conflicto entre sí y era un desastre resolverlo. Mi mayor problema es que necesito que la etiqueta og:url
sea dinámica, aunque og:title
, og:description
, og:image
, etc. también deberían serlo. Aquí está el código que tengo en la parte superior de mi archivo single.php:Metabolismo dinámico de Facebook y metadatos en WordPress PHP
EDITAR: AQUÍ ES EL CÓDIGO DE TRABAJO QUE AHORA USO. GRACIAS POR LA AYUDA DE TODOS:
<?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>
Estoy tratando de seguir el código que se encuentra aquí: Generating Facebook Open Graph meta tags dynamically y que publique a mi línea de tiempo de Facebook cada vez que leo un blog, pero por el título que de los puestos del curso "título predeterminado "y cuando hago clic en el 'enlace por defecto del título' en mi línea de tiempo de Facebook, me envía a la dirección URL de single.php con un montón de tonterías al final de la URL
http://MYSITE.com/wp-content/themes/twentyeleven/single.php?fb_action_ids=10151048340001514&fb_action_types=internetlolsapp%3Aview&fb_source=other_multiline
en lugar de la URL de blog . Me pregunto si tiene algo que ver con la URL que puse en la tercera línea después de "FB.api", pero cualquier otra cosa que haya intentado poner allí impide que la aplicación publique algo en mi línea de tiempo de Facebook cuando leo una publicación de blog.
¿Alguna idea de cómo solucionar esto? He estado tirando de mi pelo por días con esto. ¡Cualquier ayuda sería muy apreciada! Gracias por adelantado.
use 'esc_attr()'! – sam