FAQ源碼SEO標題的修改使用方法

在用開源程序phpmyfaq做網站的程序時,感覺在SEO優化上,還有一些需要調整的。下面簡單介紹一下自己針對於phpmyfaq的一些修改。這塊主要是針對於網站SEO標題方面的修改。

PS:看到這麼多代碼首先別煩燥,平靜下心來。其實沒有想像的那麼複雜。

1SEO優化之標題去版權及版本

從網站的title來看,程序的title不是很合適,把整個網站的title放到最前面,後面跟著是powered by 這樣對於SEO說來 不怎麼好,在這裡修改版權的方法,在根目錄下,index.php 找到以下源碼:

Found a record ID?
//
$id = PMF_Filter::filterInput(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if (!is_null($id)) {
    $title           = ' -  powered by phpMyFAQ '.$faq->getRecordTitle($id)  ;
    $keywords        = ',' . $faq->getRecordKeywords($id);
    $metaDescription = str_replace('"', '', $faq->getRecordPreview($id));
} else {
    $id              = '';
    $title           = ' -  powered by phpMyFAQ ' . $faqConfig->get('main.currentVersion');
    $keywords        = '';
    $metaDescription = str_replace('"', '', $faqConfig->get('main.metaDescription'));
}

//
powered by phpMyFAQ將此代碼刪除,前面的連字符不要刪除,刪除的話網站的標題和文章的標題就沒有连字符區分了。
$faqConfig->get('main.currentVersion')這個是程序的版本,首頁標題上面會跟著這個,所以这块建議刪除。

在這裡可以這樣理解為:
標黃底色的是針對內容頁面的標題、關鍵字、描述說的。藍綠底色的是針對於首頁說的。

2SEO優化之調整標題,使變量標題在前 ,網站標題在後。

即便這樣子修改完版權後,它的排版還是title在前,文章標題在後,這塊怎麼修改呢?

這裡需要找到以下代碼:

 'title'                => $faqConfig->get('main.titleFAQ') . $title,
    'baseHref'             => $faqSystem->getSystemUri($faqConfig),
    'version'              => $faqConfig->get('main.currentVersion'),
    'header'               => str_replace('"', '', $faqConfig->get('main.titleFAQ')),
    'metaTitle'            => str_replace('"', '', $faqConfig->get('main.titleFAQ') . $title),
    'metaDescription'      => $metaDescription,
    'metaKeywords'         => $keywords,

這裡的title就是網站要顯示的SEO標題,$faqConfig->get('main.titleFAQ')這個就是網站的標題名稱,$title此處的標記代表的是上面所指的變量,比如,你文章的標題是A,那麼$title就顯示的是A,所以這就是在$title           = ' -  powered by phpMyFAQ '.$faq->getRecordTitle($id)  ;沒有看到網站的標題出現,但是在網站上SEO標題上卻出現了,原因就在這裡。為了能夠讓文章標題在前面,網站標題在後面出現,這裡就對這段代碼進行了修改,其中‘ . ’代表的是鏈接。
修改後的源碼:
'title'                =>  $title.$faqConfig->get('main.titleFAQ') ,
    'baseHref'             => $faqSystem->getSystemUri($faqConfig),
    'version'              => $faqConfig->get('main.currentVersion'),
    'header'               => str_replace('"', '', $faqConfig->get('main.titleFAQ')),
    'metaTitle'            => $title.str_replace('"', '', $faqConfig->get('main.titleFAQ')  ),
    'metaDescription'      => $metaDescription,
'metaKeywords'         => $keywords,

這樣就是文章標題在前,網站標題在後面了。這裡有一點需要注意的就是連字符的運用,如果是連字符加在 'title'                =>  $title.$faqConfig->get('main.titleFAQ') ,這裡面如
'title'                =>  $title. ' - ' .$faqConfig->get('main.titleFAQ') ,這樣的話,如果前面沒有文章標題,那麼那個連字符還是會出現的。所以這就需要在$title裡面加連字符。如下:

  $title           = $faq->getRecordTitle($id).' - ' ;

同樣在index.php 找到標籤代碼,改成:   $title    = $oTag->getTagNameById($tag_id).' - ';
找到分類代碼,改成:    $title = $category->categoryName[$cat]['name'].' - ';

這樣就達到了標題當中所處欄目標題,或者是文章標題在前,即標題變量在前,網站標題在後。

這時,你會發現文章標題出現了文章標題-網站標題。是不是缺點東西,是的,缺點分類標題。想必大家都知道該怎麼做了,就是把分類代碼加到文章標題的$title上面去,如:

$title           = $faq->getRecordTitle($id).' - '.$category->categoryName[$cat]['name'].' - ' ;

此時你保存運行一下,奇怪了,怎麼沒有出現呢?原因是什麼呢?主要是[$cat]這個還米有被定義 ,就被拿過來用了,所以把下面定義[$cat]的代碼剪切一下放到  Create a new Category object下面這裡我改了一下註釋,如下:
//
// Create a new Category object
//
$category = new PMF_Category($faqConfig, $current_groups, true);
$category->setUser($current_user);

//
// Define the $cat named Category object
//
$cat         = PMF_Filter::filterInput(INPUT_GET, 'cat', FILTER_VALIDATE_INT, 0);
$cat_from_id = -1;
if (is_numeric($id) && $id > 0) {
    $cat_from_id = $category->getCategoryIdFromArticle($id);
}
if ($cat_from_id != -1 && $cat == 0) {
    $cat = $cat_from_id;
}
$category->transform(0);
$category->collapseAll();

//
// Create a new Tags object
//
$oTag = new PMF_Tags($faqConfig);

值得一提的一點是不要把分類代碼放到'title'這個代碼裡面,那裡面是對'title'下的一個統一的定義,只需改變變量即可。


這裡就先對網站SEO標題,文章SEO標題,分類SEO標題,標籤SEO標題做一下修改闡述。

Post a Comment

0 Comments