phpmyfaq
FAQ源碼SEO標題的修改使用方法
在用開源程序phpmyfaq做網站的程序時,感覺在SEO優化上,還有一些需要調整的。下面簡單介紹一下自己針對於phpmyfaq的一些修改。這塊主要是針對於網站SEO標題方面的修改。
PS:看到這麼多代碼首先別煩燥,平靜下心來。其實沒有想像的那麼複雜。
1)SEO優化之標題去版權及版本
從網站的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')這個是程序的版本,首頁標題上面會跟著這個,所以这块建議刪除。
在這裡可以這樣理解為:
標黃底色的是針對內容頁面的標題、關鍵字、描述說的。藍綠底色的是針對於首頁說的。
2)SEO優化之調整標題,使變量標題在前 ,網站標題在後。
即便這樣子修改完版權後,它的排版還是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