2016-02-18 24 views
0

我剛剛在我的news.php頁面上添加了Facebook元標記。該文件還動態生成其下的文章(網址)頁面。但是當$ data在body中被定義/填充的時候,我該如何爲頭部中的fb meta標籤設置標題(即<meta property="og:title" content="<?php echo $data[0]['title']; ?>" />)?

這麼多網站如何做到這一點?
將不勝感激這方面的任何指導。網站如何將動態php內容放入Facebook元標記中?

下面是我的網頁代碼:

<!DOCTYPE html> 
    <html> 
     <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <title>Title</title> 

    <meta property="fb:app_id" content="6666666666666"/> 
    <meta property="og:title" content="<?php echo $data[0]['title']; ?>" /> 

     </head> 

    <body> 
    <script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '66666666666666', 
     xfbml  : true, 
     version : 'v2.5' 
    }); 
    }; 

    (function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
</script> 

    <header> 


<div class="contentwrap"> 
      <article> 
       <h1>- News- </h1> 
       <?php 
       if (isset($_REQUEST['id'])) {// user gets here by clicking on link with id 
        $id_raw = trim(htmlentities($_REQUEST["id"])); 
        $data = news_data_id($conn, $id_raw); 
        ?>   

        <h2><?php echo $data[0]['title']; ?></h2> 
        <img src="<?php echo $data[0]['filepath'];?>" style="float: left; max-height: 5em; margin: 0.5em 0.5em 0.5em 0; -webkit-shape-outside: circle(50%); shape-outside: circle(50%);"> 
        <p><?php echo $data[0]['body']; ?></p> 

    <div 
    class="fb-like" 
    data-share="true" 
    data-width="450" 
    data-show-faces="false"> 
</div>    


       <?php } 
       else { 
(continues) 
+0

的可能的複製[無法在Facebook的元標記來呼應動態數據(HTTP ://stackoverflow.com/questions/35473703/unab le-to-echo-dynamic-data-in-facebook-metatags) – CBroe

回答

1

我想最好的選擇到您的網站切換到這裏mvc結構詳細的文章whot是mvc patternhttp://www.sitepoint.com/the-mvc-pattern-and-php-1/

現在沒有大的變化,您可以更改夜news.php結構,因此它會檢索所有內容PHP數據之前的HTML部分的頂部,所以在這種情況下,你將有你的$news變量放在HTML的所有地方,並且可以輕鬆地創建mattes並顯示body內容

+0

謝謝 - 我會去後者,但只是想知道 - 在pre-html部分,現在將使用'$ _SERVER [' REQUEST_URI]''(不是$ _REQUEST ['id']) - 我如何從'$ _SERVER ['REQUEST_URI]'提取id''如果頁面URL是http://www.hensofwar.com/news?id= 6' –

+0

你可以使用解決方案從這裏回答:http://stackoverflow.com/questions/4784243/how-do-i-extract-query-parameters-from-a-url-string-in-php,但實際上我沒有得到你爲什麼要切換到'$ _SERVER ['REQUEST_URI']'?因爲實際上上面的文件news.php已經被分成了兩個文件 - 所以頭在一個,身體在另一個文件中,所以如果你有權訪問'$ _REQUEST ['id']'在同一個地方 – Armen

+0

我把身體的'if'複製到html之前,我不確定我會得到值(除非我使用會話變量?) –

1

你將不得不使用Output buffering control在你的整個網站的處理這個問題。

基本上ob_start()在您的文件的第一次生命和ob_get_clean()檢索執行過程中輸出的所有內容。